おはようございます。のりのりと申します。
かなり初歩的な質問になっているかと思いますが、宜しくお願いします。
環境
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にあるような使い方をしていないのに使用していま
す...。
どなたかご存知の方がいらっしゃいましたら、ご教授お願い致します。
CWnd::GetWindowText
と
::GetWindowText
は別物ですが・・・
C++について勉強されたほうが・・・
GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount);
は SDK のとき
CWnd::GetWindowText(cahr*);
は MFC のとき
どちらも Get ですから、当然データを受取りますよ、、、、
PAIさん、Yasuさん、回答ありがとうございました(^^)。
CWnd::GetWindowTextと::GetWindowTextは別物なのですね。
ちょっと分かりませんでした。
MSDNのCWnd::GetWindowTextを見て、自分が使用していたGetWindowText関数は、
『void GetWindowText( CString& rString ) const;』で、rStringに取得したテキスト
が格納される
という事が分かりました。
MSDNで調べると同じ関数名でもいくつか出てきますよね。
私はちゃんと見れていなかったようです。
一応C++の入門の本は読んだのですが…
まだまだ勉強が足りませんね…。もっと頑張ります。