WindowsXP VC++.NET 2003 で開発しております。
2回目の質問になりますが、よろしくお願いします。
テンプレートを使わずにコントロールを2つ直接作成しました。
1つはエディットボックスで、もう1つはボタンです。
エディットボックスでENTERキーを押せば、自動的にボタンを押す、
というのを実装したいと思っています。
ボタンのスタイルには、BS_DEFPUSHBUTTON を設定したのですが、
ENTERキーを押してもボタンを押したことにはなりません。
リソースを使わず、これを実装する方法はありますでしょうか。
以下にソースの1部を書きます。
//-----WinMain----------
INT APIENTRY WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, INT
nCmdShow )
{
.
...
....
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = NULL;
wc.lpfnWndProc = WinProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = hInst;
wc.hIcon = NULL;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = szWinName;
wc.hIconSm = NULL;
if (!RegisterClassEx(&wc)) return (FALSE);
hWnd = CreateWindowEx(0,
szWinName,
szWinTitle,
WS_OVERLAPPEDWINDOW|WS_SYSMENU,
0,
0,
SCREEN_WIDTH,
SCREEN_HEIGHT,
NULL,
NULL,
hInst,
NULL
);
ShowWindow(hWnd, nWinMode);
UpdateWindow(hWnd);
.
...
....
while(GetMessage(&msg,NULL,0,0))
{
if(!IsDialogMessage(hWnd,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
.
...
....
//-----ウインドウプロシージャ-------
LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wPa, LPARAM lPa)
{
.
...
....
case WM_CREATE:
/* テキスト入力ボックスを作成 */
hTextbox=CreateWindowEx(0, EDIT,",
WS_CHILD | ES_MULTILINE | WS_VSCROLL
|WS_GROUP|WS_TABSTOP|WS_VISIBLE,
0, 0, 0, 0,
hWnd,
(HMENU)2,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), NULL);
/* 送る ボタンを作成 */
hButton=CreateWindowEx(0, BUTTON,送る,
WS_CHILD|WS_GROUP|WS_TABSTOP|WS_VISIBLE|BS_DEFPUSHBUTTON,
0, 0,128, 32,
hWnd,
(HMENU)ID_BTN,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), NULL);
break;
.
..
...
case WM_SIZE:
MoveWindow(hButton, LOWORD(lPa)-70,
HIWORD(lPa)-36,64, 32, TRUE);
MoveWindow(hTextbox, 5, HIWORD(lPa)*0.77+10,
LOWORD(lPa)-80, HIWORD(lPa)-HIWORD(lPa)*0.77-
15, TRUE);
break;
.
..
...
default:
return DefWindowProc(hWnd, msg, wPa, lPa);
.
..
...
//---------------
この機能を実装すれば、作りたいプログラムがひとまず完成します。。
アドバイスがありましたら、よろしくお願いいたします。
DM_SETDEFIDで設定します。
dairygoods様
DM_SETDEFIDを使い、デフォルトプッシュボタンを作ることができました。
的確なアドバイスありがとうございました。
やはり直接書くのは大変なので、リソースのほうも勉強したいとおもいます。
dairygoods様
DM_SETDEFIDを使い、デフォルトプッシュボタンを作ることができました。
的確なアドバイスありがとうございました。
やはり直接書くのは大変なので、リソースのほうも勉強したいとおもいます。