在主窗口hwnd中添加EDIT控件IDC_Edit1每次往Edit控件中输入字符应该有WM_CHAR发出求问一下这个WM_CHAR 是发给hwnd的呢 还是IDC_Edit1控件啊?谢谢如果发送这个控件的话 如何对输入字符相应啊 谢谢
解决方案 »
- C++ 如何给 Combobox 添加选项 非MFC 100分
- 有没有类似于LockThread(),UnlockThread()的函数用与锁定一个线程单独运行(期间Cpu不会切换到同一进程其他Thread运行)?
- 问点菜鸟问题
- 在DLL中已将全局变量设为共享,但结果显示并没有共享,这是什么原因?
- 怎样强制关掉一个Socket?在线等待,解决即给分!
- 文件属性对话框问题
- 各位大哥小弟有问题。500分请教两个作业问题,绝不失言,我只有500分了。在此谢谢大家了。
- 类似于VB中的DoEvents,如何实现
- 各位大家好,我想在LINUX下做HTTP代理,我想下个这个叫squid的软件,我在网上看到很多的人在讨论他,可是,我没有办法在网上找到它,大家可以告诉我在什么地方有的下吗,新鲜……
- 如何判断一个文件或目录的存在
- 书上的例子是发送邮件的程序 可是我 发送的邮件 怎么收不到呢??急!!!!!!
- vc++写的OCX控件(中国象棋)
谢谢void adSettingWnd::OnInitDialog()
{
//set default off time
HWND ID;
HWND hwnd;
ID=GetDlgItem(GetHWnd(),IDC_RB_1m);
SendMessage(ID,BM_SETCHECK ,BST_CHECKED,0) ; hwnd=GetDlgItem(GetHWnd(),IDC_Test_Edit);
LONG ret=SetWindowLong(hwnd,GWL_WNDPROC,(LONG)EditCtlProc); //这句话加了Edit控件消失
if(ret == 0)
{
RETAILMSG(1,(L"error in Set WindowsLong \n"));
}
BOOL bRet = ::SendMessage( hwnd, WM_SETTEXT, 2038, (LPARAM)L"" );
::SendMessage( hwnd, EM_SETLIMITTEXT, 2038, 0 );
//SetWindowLong(hwnd,GWL_WNDPROC,(LONG)EditCtlProc);
}
默认窗口是哪个窗口?
自己的窗口过程是指 EDIT控件窗口么?
谢谢
关键还是要看你EditCtlProc的实现。如果Edit控件消失不见,很可能是控件的重绘消息没有响应。
WNDPROC s_oldPinProc; LRESULT CALLBACK EditCtlProc(
HWND hWndCtrl,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
LRESULT ret = 0; HWND hwndParent = GetParent(hWndCtrl);
LONG dwThis = GetWindowLong(hwndParent, GWL_USERDATA);
adSettingWnd *pThis = reinterpret_cast<adSettingWnd*>(dwThis);
ret = CallWindowProc(s_oldPinProc, hWndCtrl, message, wParam, lParam);
if (message != 0)
{
// Otherwise, call the control's wndproc.
switch (message)
{
case WM_CHAR:
pThis->GetTextEdit(hWndCtrl);
RETAILMSG(1,(L"WM_CHAR in EDIT WROC \n"));
break;
}
} return ret;
} }
HRESULT adSettingWnd::GetTextEdit(HWND hwnd)
{
HRESULT hr=S_OK;
LPCWSTR pszText;
HWND editHwnd;
HWND textHwnd;
WCHAR Textbuf[25];
LPTSTR lpString;
int TextLen;
editHwnd=GetDlgItem(hwnd,IDC_Test_Edit);
textHwnd=GetDlgItem(hwnd,IDC_Test_Text);
GetWindowText(editHwnd,lpString,2400);
TextLen=GetWindowTextLength( editHwnd); hr=StringCchPrintf(Textbuf,sizeof(Textbuf),(TEXT("%s")),lpString)
// 下面输出Textlen ==0 lpString是空的 不知道这是怎么回事呢?谢谢
RETAILMSG(1,(L"Textlen =%d and lpString=%s \n",TextLen,lpString)); hr = ElementSetStringAttribute(ad_mTextElement, ATTR_TEXT,lpString/*LastBuf*/);
if(hr!=S_OK)
RETAILMSG(1,(L"Set word error \n"));
return hr;
}