J'ai ce programme :
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_CLOSE:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
int main()
{
WNDCLASSA wnd_class = { 0 };
wnd_class.lpfnWndProc = WndProc;
wnd_class.hInstance = GetModuleHandle(NULL);
wnd_class.lpszClassName = "actwnd";
RegisterClassA(&wnd_class);
HWND main_wnd = CreateWindowA(wnd_class.lpszClassName, "Program activation", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, 640, 480, NULL, 0, wnd_class.hInstance, NULL);
MSG msg = { 0 };
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Je ne comprends pas pourquoi la légende de la fenêtre s'affiche incorrectement :
Il semble que pour une raison inconnue pour moi, quelque chose pense toujours que c'est un codage unicode à deux octets...
L'encodage du fichier des options d'enregistrement avancées est fixé à un seul octet - win 1251.
Je veux utiliser exactement les versions ANSI et l'en-tête de ma fenêtre ne contient que des caractères ANSI.