WIN32APIプログラムのBUTTONの振舞い



 ◇-?WIN32APIプログラムのBUTTONの振舞い-しん-06/18-14:34(154)-No.478931
   ┗?~Re:WIN32APIプログラムのBUT...-jtaka[BJCB]-06/18-14:40(154)-No.478933
     ┗?~【解決】Re:WIN32APIプログラム...-しん-06/19-08:25(136)-No.478966

▲このページのトップに戻る
478931WIN32APIプログラムのBUTTONの振舞いしん URL2009/06/18-14:34

メーカー名:東芝
OS名:WindowsXp HomeEdition
パソコン名:PAEX322PDE3
使用回線:ADSL
--
・C言語とWIN32APIで作成しています。
・別のプログラムでBUTTONを作成したのですが、BUTTONをクリックした後、Key入力が出来なくなります。
・そこで下記のtestプログラムを作成しました。
・Keyを押すと対応する仮想キーコードが表示されます。
・BUTTONのNO_1を押した後、何かキーを押しても反応しません。
・スペースキーを押すとBUTTONのNO_1が反応します。

#include <windows.h>
HINSTANCE hInst;
char szBuf[250];
//***********************************************************************************************
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
PAINTSTRUCT ps;

switch (msg) {
case WM_CREATE:
CreateWindow((LPCTSTR)"BUTTON","NO_1",WS_CHILD|WS_VISIBLE|WS_BORDER,
100,100,100,70,hWnd,(HMENU)100,hInst,NULL);
return 0;
case WM_KEYDOWN:
wsprintf(szBuf,"WM_KEYDOWN=%3d",wp);
InvalidateRect(hWnd, NULL, FALSE);
return 0;
case WM_PAINT:
BeginPaint(hWnd, &ps);
TextOut(ps.hdc,10,20,szBuf,lstrlen(szBuf));
EndPaint(hWnd, &ps);
return 0;
case WM_COMMAND:
switch(LOWORD(wp)){
case 100:
break;
}
return 0;
case WM_CLOSE:
DestroyWindow(hWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd, msg, wp, lp);
}
}
//***********************************************************************************************
// WinMain
//***********************************************************************************************
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)
{
WNDCLASS wc;
MSG msg;
HWND hWnd;
hInst = hInstance;

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInst;
wc.hIcon = NULL;
wc.hCursor = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = (LPCTSTR)"test";
if (!RegisterClass(&wc)) return FALSE;
//******************************************************************************************
hWnd = CreateWindow(
"test",TEXT(__FILE__),WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInst,NULL);
if (!hWnd) return FALSE;
//******************************************************************************************
while(GetMessage(&msg,NULL,0,0) > 0) {
DispatchMessage(&msg);
TranslateMessage(&msg);
}
return (int)msg.wParam;
}

▲このページのトップに戻る
478933Re:WIN32APIプログラムのBUTTONの振jtaka[BJCB] 2009/06/18-14:40

記事番号478931へのコメント
しんさんは No.478931「WIN32APIプログラムのBUTTONの振舞い」で書きました。

別サイトでの進行状況:
http://www.kotaete-net.net/Default.aspx?pgid=14&qid=100459802053

▲このページのトップに戻る
478966Re:WIN32APIプログラムのBUTTONの振しん 2009/06/19-08:25

記事番号478933へのコメント
jtaka[BJCB]さんは No.478933「Re:WIN32APIプログラムのBUTTONの振」で書きました。

有難うございました

SetFocus(hWnd);
これで、出来ました。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言