现在的位置: 首页 > 综合 > 正文

创建一个真正隐藏的窗口

2013年10月19日 ⁄ 综合 ⁄ 共 741字 ⁄ 字号 评论关闭

ATOM MyRegisterClass(HINSTANCE hInstance)
{
 WNDCLASSEX wcex;

 wcex.cbSize = sizeof(WNDCLASSEX);

 wcex.style   = CS_HREDRAW | CS_VREDRAW;
 wcex.lpfnWndProc = HeartBeatWin;
 wcex.cbClsExtra  = 0;
 wcex.cbWndExtra  = 0;
 wcex.hInstance  = g_hInst;
 wcex.hIcon   = NULL;
 wcex.hCursor  = LoadCursor(NULL, IDC_ARROW);
 wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
 wcex.lpszMenuName = NULL;//MAKEINTRESOURCE(IDC_XEYE);
 wcex.lpszClassName = MSG_ENGINE_CLASSNAME;
 wcex.hIconSm  = NULL;

 return RegisterClassEx(&wcex);
}

  g_hHear = CreateWindowEx(WS_EX_NOACTIVATE, // 该参数保证该窗口永不被激活
   MSG_ENGINE_CLASSNAME, "title",
   WS_POPUP,
   0, 0, 10, 10,
   NULL, NULL, 0, NULL) ;

 

无论你如何SetWindowPos( SWP_NOACTIVATE.. ) 都没用, 一个窗口在被第一次创建好的时候, windows会自动的为其送去焦点和把其激活, 所以,  要想让一个窗口一开始就不被激活, 不获取焦点, 那么就只有在创建窗口的时候, 把WS_EX_NOACTIVATE传进去.

 

抱歉!评论已关闭.