2014-11-02 83 views
0

所以我試圖拼湊一個窗口,但是當我需要命名窗口時,我告訴了我。 (錯誤:類型爲「const char *」的參數與「LPCWSTR」類型不兼容) CreateWindow方法的編程位於下方。誤差應在第2行無法設置窗口名稱


hwnd = CreateWindow(
    "Engine_Winter_Name", 
    "Winter Engine", 
    WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION, 
    GetSystemMetrics(SM_CXSCREEN)/2 - WIDTH/2, 
    GetSystemMetrics(SM_CYSCREEN)/2 - HEIGHT/2, 
    WIDTH, 
    HEIGHT, 
    (HWND)NULL, 
    (HMENU)NULL, 
    hInstance, 
    (LPVOID*)NULL); 

if (!hwnd) 
    return false; 

ShowWindow(hwnd, nCmdShow); 

return true; 

所有幫助更受歡迎! 在此先感謝。

回答

0

你需要一個寬的字符串。用您的字符串前綴L.

hwnd = CreateWindow(
    L"Engine_Winter_Name", 
    L"Winter Engine", 
0

您正在編譯UNICODE定義,這意味着例如,在CreateWindow宏映射到CreateWindowW,其預計寬字符(wchar_t基)參數:

hwnd = CreateWindow(
    L"Engine_Winter_Name", 
    L"Winter Engine", 
    WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION, 
    GetSystemMetrics(SM_CXSCREEN)/2 - WIDTH/2, 
    GetSystemMetrics(SM_CYSCREEN)/2 - HEIGHT/2, 
    WIDTH, 
    HEIGHT, 
    HWND(), 
    HMENU(), 
    hInstance, 
    nullptr); 

if (!hwnd) 
    return false; 

ShowWindow(hwnd, nCmdShow); 

對於現代的Windows桌面程序通常最好使用基於Unicode API,因爲你在幹什麼。