
プログラミング初心者です。Windows XP, Visual Studio 2005 PE 使用。MFCは使わない(というより使い方がわからない…)。
簡単なウィンドウプログラムを作っています。エディットボックス1つとボタン1つを含むもので、ボタンを押すとエディットボックスの文字列を取得して、もしそれが close であればプログラムを終了するようにしたいんです。
自分で書いたコードの一部(プロシージャのみ)を以下に載せます。WM_CREATE、WM_DESTROYメッセージは省略。edit1はエディットボックスのハンドル、case式の2はボタンの子ウィンドウIDです。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){
char lpString[6];
switch(msg){
case WM_COMMAND:
switch(LOWORD(wParam)) {
case 2:
GetWindowText(edit1,lpString,6);
if(lpString == "close")
SendMessage(hWnd, WM_CLOSE, 0, 0);
else
SendMessage(edit1, WM_CLEAR, 0, 0);
return 0;
}
return 0;
default :
return DefWindowProc(hWnd,msg,wParam,lParam);
}
return 0;
}
Visual Studioではちゃんとビルドしてくれるんですが、いざ実行してcloseと入力した上でボタンを押してもうんともすんとも言いません。原因は何でしょうか?素人ながらlpStringをそのまま取り出して使用してるのがまずいのではと思いますが、関数の使い方がわからず対処に困っています。教授いただければ幸いです。
No.1ベストアンサー
- 回答日時:
Cの基本的なミスですね。
lpString == "close"
これは文字列の比較になっていません。
(アドレスを比較しています。)
strcmp( lpString , "close" ) == 0
としてください。
WinAPIでlstrcmpというのもあります。
lstrcmpA(lpString , "close") == 0
でも良いです。
あ………(汗)
一発で解決しました。
簡単なことだったんだあははは…って、
昨夜原因を究明すべく教科書を開いていたらstrcmp関数が
出ていました。なのに自分のやってることとまったく
結びつかなかった。その辺が初心者なんでしょうね。
furyfox様、迅速な回答有難うございました!
簡単なプログラムでも苦労した末に成功すると
格別に気分がいいですね~><
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
Excel マクロ 閉じるボタン
-
Excel VBA Application.caller...
-
セルをマクロのボタンにしたい。
-
VBA CommandButtonの文字ずれ
-
ユーザーフォームに別シートか...
-
コマンドボタンやイメージにマ...
-
[VB.net] ボタン(Flat)のEnable...
-
VBAのボタンの位置が変わって困...
-
じゃんけんEXCELVBA
-
マルチページで現在開いている...
-
わかりません
-
プロシージャからイベントをコ...
-
VBAで多数のプログラムを一つの...
-
C# WindowsForm Button押下判定
-
VBAでオプションボタンによって...
-
テラパッドを使ってるんですが...
-
エクセルVBAでユーザーフォーム...
-
C#プログラムで、ボタンをショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
フォームの再読み込み
-
VB.net でトグルボタンを実現し...
-
Excel マクロ 閉じるボタン
-
[VB.net] ボタン(Flat)のEnable...
-
VBAのボタンの位置が変わって困...
-
プロシージャからイベントをコ...
-
閉じると「+」になり開くと「-...
-
ボタンをマウスで押し続けたと...
-
C#プログラムで、ボタンをショ...
-
VBAで多数のプログラムを一つの...
-
Access VBA でデータペーストを...
-
アイコンとボタンの違い
-
ボタン
おすすめ情報