2016-09-29 105 views
-2

如何在按钮上单击,在win32 sdk中创建一个新窗口?..我尝试在IDC_ buttonclick案例中编写CreateWindow api,但它没有工作..在现有窗口中创建一个新窗口

这里是我的代码:

case WM_COMMAND: 

    switch(LOWORD(wParam)) 
    { 
     case IDC_BUTTONCLICK: 
      if (BN_CLICKED==HIWORD(wParam)) 
      { 
       GetWindowText(hwndEdit, data,255); 
       //MessageBox(hwnd,data,"Hello",MB_OK); 
      } 
     //wsprintf(str,"%s",Patients_List[1].FirstName); 
     //MessageBox(hwnd, str, "First Name", MB_OK); 
     for(a = 0; a < 2; a++) 
     { 
      if(!strcmp(Patients_List[a].FirstName,data)) 
      { 
       wsprintf(str,"%s", Patients_List[a].ContactNum); 
       MessageBox(hwnd, str, "Contact Number", MB_OK); 
       //MessageBox(hwnd, "Contact Num", "Contact Number", MB_OK); 
       hwndInfoWindow = CreateWindow(WS_EX_TOPMOST, "MiniProject", WS_OVERLAPPEDWINDOW|WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, hwnd, NULL, NULL, NULL); 
       ShowWindow(hwndInfoWindow,SW_SHOW); 
      } 
     } 
    } 
    break; 
+0

基于信仰的节目是不会让你很远。无论如何,如何创建一个窗口已经在几十万本教程和书籍中得到了解释。如果您想停止猜测并开始认识,请获取Petzold的[编程Windows®,第五版](https://www.amazon.com/dp/157231995X)。 (投票结果为无用,由于缺乏研究而被低估) – IInspectable

+0

我已经创建了主窗口。我想在用户按下“提交按钮”时创建另一个正常窗口。我已经有一个彻底的谷歌搜索。不过,我会与您的建议,并阅读Charles Petzold的窗口编程:) –

+0

基于信仰的编程。调用函数但未能检查返回值的错误。你必须学会​​如何检查错误。否则,你只能猜测。学习如何调试。 –

回答

0

WS_EX_TOPMOST不能传递给CreateWindow(),你必须将它传递给CreateWindowEx()代替。

而且您没有传递lpWindowName参数的值。

试试这个:

hwndInfoWindow = CreateWindowEx(WS_EX_TOPMOST, "MiniProject", "", WS_OVERLAPPEDWINDOW|WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, hwnd, NULL, NULL, NULL);