GetWindowText関数の使い方について

[戻る]
のりのり [E-Mail] 2002/09/03(火) 09:25:54
おはようございます。のりのりと申します。
かなり初歩的な質問になっているかと思いますが、宜しくお願いします。

環境
Windows Me
VC++ 6.0
oracle

GetWindowText関数についての質問です。
現在MFC AppWizerd(exe)によりダイアログベースでプログラムを組んでいます。

MSDNでGetWindowText関数を調べると以下のように書いてありました。

GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount);

これはGetWindowTextという関数を利用する為にはHWND型、LPTSTR型、int型の3つの引数が必
要と言う事ですよね?

でも、本やインターネットで検索して、実際に私が使っている使い方と言うのは以下の通りで
す。

// CString型のstrBuffer
CString strBuffer;
// ダイアログのコントロールへのポインタを取得、CWnd型のポインタedit_nouにセット
CWnd* edit_nou = GetDlgItem(IDC_EDIT_NOUNYUBASYO);

// CWndのメンバ関数であるGetWindowText関数を使ってstrBufferに取得した文字列をセット
edit_nou->GetWindowText(strBuffer);

という用に使用しているのですが、GetWindowText関数には引数としてstrBufferしか指定して
おらず、しかもデータを渡すと言うよりはstrBufferに受け取ると言った意味合いですよね?

どうしてMSDNに書いてあるように3つの引数を渡さなくても使用できるのでしょうか?
これと同様にGetDlgItem関数もMSDNにあるような使い方をしていないのに使用していま
す...。

どなたかご存知の方がいらっしゃいましたら、ご教授お願い致します。

PAI 2002/09/03(火) 10:46:21
CWnd::GetWindowText

と

::GetWindowText

は別物ですが・・・
C++について勉強されたほうが・・・

Yasu [E-Mail] 2002/09/03(火) 13:05:06
GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount);
は SDK のとき

CWnd::GetWindowText(cahr*);

は MFC のとき
どちらも "Get" ですから、当然データを受取りますよ、、、、

のりのり 2002/09/04(水) 23:40:49
[[解決]]
PAIさん、Yasuさん、回答ありがとうございました(^^)。

CWnd::GetWindowTextと::GetWindowTextは別物なのですね。
ちょっと分かりませんでした。
MSDNのCWnd::GetWindowTextを見て、自分が使用していたGetWindowText関数は、

『void GetWindowText( CString& rString ) const;』で、rStringに取得したテキスト
が格納される

という事が分かりました。
MSDNで調べると同じ関数名でもいくつか出てきますよね。
私はちゃんと見れていなかったようです。

一応C++の入門の本は読んだのですが…
まだまだ勉強が足りませんね…。もっと頑張ります。

古いスレッドには追加発言できません。