2016-09-29 95 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);