在应用层传一个窗口句柄到SDK中,在SDK中创建一个非模态子窗口,下面是我的SDK中代码,应用层窗口有时不能响应消息,请赐教。
////////////////////////////////
long FAR PASCAL WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc(hWnd, message, wParam, lParam);
}
//////////////////////
WNDCLASS wc;
wc.style = CS_HREDRAW |CS_VREDRAW ;//CS_VREDRAW ;//CS_BYTEALIGNCLIENT |
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = NULL;//hInstance;
wc.hIcon = NULL;
wc.hCursor = NULL
wc.hbrBackground = (HBRUSH )GetStockObject(GRAY_BRUSH);//
wc.lpszMenuName = NULL;
wc.lpszClassName = "AA";
RegisterClass(&wc);hWnd = CreateWindow(
"AA",//"AA",
NULL,
WS_CHILD|WS_VISIBLE,// | WS_POPUP_ ,
20,
20,
50,
50,(SM_CXSCREEN),
m_hPreviewWnd,(//应用层传窗口句柄)
NULL,
NULL,//hInstance,
NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
SetWindowPos(hWnd,HWND_TOPMOST,0,0,50,50,SWP_NOSIZE|SWP_SHOWWINDOW
////////////////////////////////
long FAR PASCAL WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc(hWnd, message, wParam, lParam);
}
//////////////////////
WNDCLASS wc;
wc.style = CS_HREDRAW |CS_VREDRAW ;//CS_VREDRAW ;//CS_BYTEALIGNCLIENT |
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = NULL;//hInstance;
wc.hIcon = NULL;
wc.hCursor = NULL
wc.hbrBackground = (HBRUSH )GetStockObject(GRAY_BRUSH);//
wc.lpszMenuName = NULL;
wc.lpszClassName = "AA";
RegisterClass(&wc);hWnd = CreateWindow(
"AA",//"AA",
NULL,
WS_CHILD|WS_VISIBLE,// | WS_POPUP_ ,
20,
20,
50,
50,(SM_CXSCREEN),
m_hPreviewWnd,(//应用层传窗口句柄)
NULL,
NULL,//hInstance,
NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
SetWindowPos(hWnd,HWND_TOPMOST,0,0,50,50,SWP_NOSIZE|SWP_SHOWWINDOW
SetWindowPos(hWnd,HWND_TOPMOST,0,0,50,50,SWP_NOSIZE|SWP_SHOWWINDOW)
这什么呀,乱...你创建的 窗口有自己的 消息处理函数的,Parent窗口怎么的到消息呢? 象你这样的,
我觉得非得用SDK吗? 如果要用,还是先多学习学习吧。
IDD_TRANS_TAB 对话框的Id
g_Dialog = new MyDlg;
g_Dialog->Create(IDD_TRANS_TAB, this->GetWindow(GW_CHILD));
g_Dialog->MoveWindow(&rt);
g_Dialog->ShowWindow(SW_SHOW);