|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.02.2016, 21:19 | #1 |
Регистрация: 26.02.2016
Сообщений: 5
|
не могу создать окно
подскажите какие могут быть причины не создания окна?
зарание прошу простить если ответ очевиден,но я в этом деле всего 2 дня #include "windows.h" #include "cstdlib" LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE mmm,HINSTANCE Prev,LPSTR cmd,int mode) { HWND wind; MSG msg; char classname[] ="TRY"; WNDCLASSEX wc; wc.cbClsExtra = 0; wc.cbSize = sizeof(wc); wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH) ; wc.hInstance = mmm; wc.lpfnWndProc = WndProc; wc.lpszClassName = (LPCWSTR)classname; wc.lpszMenuName = NULL; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.style = CS_HREDRAW | CS_VREDRAW; wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION); if (!RegisterClassEx(&wc)) { MessageBox(NULL, L"register", L"ERR", MB_OK); return 0; } wind = CreateWindowA(classname,"TRY",WS_OV ERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,HWND_DESKTOP,(HMENU)N ULL,mmm,(LPVOID)NULL); if (!wind) { SendMessage(wind,WM_CREATE,NULL,NUL L); MessageBox(NULL, L"CREATE", L"ERR", MB_OK); return 0; } ShowWindow(wind,mode); UpdateWindow(wind); while (GetMessage(&msg,wind,0,NULL)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wpr,LPARAM lprm) { static long int err; char NUMBER[20]; switch (uMsg) { case WM_CREATE: ShellExecuteA(NULL, NULL, "C:\\try2.exe", NULL, NULL, SW_SHOWNORMAL); err = GetLastError(); _itoa(err, NUMBER, 10); MessageBoxA(NULL, NUMBER, "inf", MB_OK); MessageBox(NULL,L"creating",L"cREAT E",MB_OK); break; case WM_CLOSE: MessageBox(NULL,L"Close?",L"CLOSE?" ,MB_YESNO); DestroyWindow(hwnd); break; default: err=GetLastError(); _itoa(err, NUMBER, 10); MessageBoxA(NULL,NUMBER, "inf",MB_OK); DefWindowProc(hwnd,uMsg,wpr,lprm); break; } return 0; } |
26.02.2016, 21:51 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,355
|
Вот здесь проблема:
wc.lpszClassName = (LPCWSTR)classname; Уберите приведение типа и поменяйте тип проекта на MultiByte вместо Unicode. |
26.02.2016, 21:58 | #3 |
Регистрация: 26.02.2016
Сообщений: 5
|
не помогло.я сейчас заплачу :"(
Последний раз редактировалось Пепел Феникса; 26.02.2016 в 22:18. |
26.02.2016, 22:21 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
кроме некоторых случаев приведение типов говорит что вы сделали что-то не так.
http://programmersforum.ru/showthrea...hlight=Unicode http://programmersforum.ru/showpost....22&postcount=5 рассказывать где настройки проекта я не буду. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать развернутое окно | BLACK_RAIN | Win Api | 2 | 11.04.2015 18:06 |
Создать ToolWindow окно | Xo66um | Win Api | 0 | 16.03.2014 15:04 |
как создать окно | Arassir | JavaScript, Ajax | 2 | 26.06.2011 16:45 |
Не могу связать диалоговое окно с [x] | Tema_Crazzzy | Qt и кроссплатформенное программирование С/С++ | 8 | 06.04.2011 16:12 |
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. | RustreX | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.11.2007 19:28 |