2010-07-11 6 views
2

Comment imprimer la valeur HWND à MessageBox dans Visual C++?Imprimer HWND à la boîte de message

Mise à jour:

J'ai essayé d'imprimer l'ID de poignée à un messagebox, mais il apparaît avec les caractères chinois. Voici le code sur lequel je travaille.

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

Pourquoi avez-vous lancé un 'char [64]' dans un 'LPCWSTR'? Cela n'a aucun sens. –

Répondre

6

Un HWND est juste un pointeur.

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

Mise à jour
On dirait que vous rencontrez des problèmes avec des caractères larges et étroites (ASCII et UTF-16). Essayez ce qui suit:

#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

merci pour l'aide – barlyee

+0

Cette erreur apparaît. Puis-je savoir comment le résoudre? : erreur C2664: 'MessageBoxW': impossible de convertir le paramètre 2 de 'char [64]' en 'LPCWSTR' – barlyee

Questions connexes