返回首页

嗨,我只是写本和使用SetWindowSubclass一次,这是我几乎没有顺利工作。差不多。当我按下键盘上的输入,而它的子类的编辑控件具有焦点,它正是我想要它。但每次我按下它,它使一个响亮的F *** ING卧底噪音。反正是有解决这个问题?

LRESULT CALLBACK EditSubclass(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)

{

	switch (msg)

	{

		case WM_KEYDOWN:

		{

			switch(wParam)

			{

				case VK_RETURN:

				{

					SendMessage(sendbutton, BM_CLICK, 0, 0);

					SetFocus(editbox);

				}

			}

			return TRUE;

		}

	}

	return DefSubclassProc(hwnd, msg, wParam, lParam);

}

回答

评论会员:游客 时间:2012/02/04
。,因为是单行线,按回车键,蜂鸣声,被认为是一种尝试插入另一行回车键在对话框中,被困的对话过程中,并发送到默认的按钮(如果有的话),否则留下的编辑控制。在其他的窗口,这种"俘获"需要messge循环,调度集中的窗口前检查存在一个对话框消息。类似codepre spanclass="code-comment"/*/spanspanclass="code-comment"Windowproceduredefinition*//spanLRESULTWINAPICALLBACKwinproc(HWNDh,UINTm,WPARAMw,LPARAMz){....} spanclass="code-comment"/*/spanspanclass="code-comment"maybeWinMain,_tmain,_tWinMainorwhateverentrypoint*//spanspanclass="code-keyword"int/spanmain(){spanclass="code-comment"/*/spanspanclass="code-comment"Classregistrationstuff*//spanWNDCLASSEXwcx={.....};....RegisterWindowClassEx(&wcx); spanclass="code-comment"/*/spanspanclass="code-comment"WIndowCreation*//spanHWNDhwnd=CreateWindow(....);....spanclass="code-comment"/*/spanspanclass="code-comment"messgeloop*//spanspanclass="code-keyword"for/span(;;){MSGmsg;spanclass="code-keyword"if/span(GetMessage(&msg,spanclass="code-digit"0/span,spanclass="code-digit"0/span,spanclass="code-digit"0/span)<=0)spanclass="code-keyword"break/span;spanclass="code-comment"///spanspanclass="code-comment"<exitonerroror"quit"/spanspanclass="code-keyword"if/span(bIsDialogMessage(hwnd,&msg)/b)spanclass="code-keyword"continue/span;spanclass="code-comment"///spanspanclass="code-comment"<skipregulardispatching/spanTranslateMessage(&msg);DispatchMessage(&msg);}spanclass="code-keyword"return/spanspanclass="code-digit"0/span;}/pre/code
斯蒂芬・休伊特
评论会员:游客 时间:2012/02/04
我做了一个谷歌搜索"进入编辑控制嘟"的第一个结果包含以下:ES_MULTILINE指定一个多行编辑控制。默认是单行编辑控制。当多行编辑控制是在一个对话框中,按ENTER键是默认的响应,以激活默认按钮。使用回车键进入,使用的ES_WANTRETURN风格。当多行编辑控制是不是在一个对话框,指定ES_AUTOVSCROLL风格,编辑控制显示许多线尽可能垂直滚动,当用户按下ENTER键。如果你不指定ES_AUTOVSCROLL的编辑控制显示尽可能多行和蜂鸣声,如果用户按下ENTER键时可以显示更多行