2010-07-11 131 views
2

如何在Visual c + +中將HWND值打印到MessageBox?打印HWND到消息框

更新:

我試圖打印手柄ID到一個消息,而是將其與中國文字出現。這是我正在處理的代碼..

 char szBuff[64]; 
     sprintf(szBuff, "%p", m_hWnd); 
     MessageBox(NULL, LPCWSTR(szBuff), L"Test print handler", MB_OK); 
+0

爲什麼要在'LPCWSTR'中投出'char [64]'?這實際上沒有意義。 – 2015-01-21 20:17:11

回答

6

HWND只是一個指針。

char szBuff[64]; 
sprintf(szBuff, "%p", hWnd); 
MessageBox(NULL, szBuff, "Title", MB_OK); 

更新
聽起來像您有寬和窄字符(ASCII和UTF-16)的麻煩。請嘗試以下操作:

#include <Windows.h> 
#include <cstdio> 

int _tmain(int argc, TCHAR* argv[]) 
{ 
    HWND hWnd=::GetConsoleWindow(); 

    TCHAR szBuff[64]; 
    _stprintf(szBuff, _T("%p"), hWnd); 
    MessageBox(NULL, szBuff, _T("Title"), MB_OK); 

    return 0; 
} 
+0

感謝您的幫助 – barlyee 2010-07-11 08:48:38

+0

出現此錯誤。我可以知道如何解決它嗎? :錯誤C2664:'MessageBoxW':不能將參數2從'char [64]'轉換爲'LPCWSTR' – barlyee 2010-07-12 01:26:34