Здравствуйте, titeha, Вы писали:
Исправленный код. Обрати внимание на выделенное жирным. В проекте должны быть установлены макросы UNICODE и _UNICODE
#include "windows.h"
#include "tchar.h"
#include "resource.h"
HINSTANCE hInst;
HWND MyProjectWnd;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
ATOM MyProjectWndClass;
WNDCLASSEX wc;
MSG msg;
hInst = hInstance;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
wc.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
wc.hbrBackground = (HBRUSH)1;
wc.lpszMenuName = NULL;
wc.lpszClassName = _TEXT("MyProjectWndClass");
wc.hIconSm = wc.hIcon;
wc.hInstance = hInstance; // это я добавил
if (!(MyProjectWndClass = RegisterClassEx(&wc)))
MessageBox(NULL, (_TEXT("Ошибка запуска программы!")),
(_TEXT("Ошибка")), MB_OK | MB_ICONERROR);
MyProjectWnd = CreateWindowEx(0, (LPCWSTR)MAKELONG(MyProjectWndClass, 0),
(_TEXT("Этот проект")),
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
if (!MyProjectWnd)// return EXIT_FAILURE;
{
DWORD T = GetLastError();
return EXIT_FAILURE;
}
ShowWindow(MyProjectWnd, SW_SHOWNORMAL);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CLOSE:
{
DestroyWindow(hWnd);
break;
}
case WM_DESTROY:
{
PostQuitMessage(EXIT_SUCCESS);
break;
}
/*default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;*/
}
return DefWindowProc(hWnd, message, wParam, lParam);
}