Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2016, 21:19   #1
PshPsh
 
Регистрация: 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;
}
PshPsh вне форума Ответить с цитированием
Старый 26.02.2016, 21:51   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,355
По умолчанию

Вот здесь проблема:
wc.lpszClassName = (LPCWSTR)classname;


Уберите приведение типа и поменяйте тип проекта на MultiByte вместо Unicode.
waleri вне форума Ответить с цитированием
Старый 26.02.2016, 21:58   #3
PshPsh
 
Регистрация: 26.02.2016
Сообщений: 5
По умолчанию

не помогло.я сейчас заплачу :"(

Цитата:
Сообщение от waleri Посмотреть сообщение
Вот здесь проблема:
wc.lpszClassName = (LPCWSTR)classname;


Уберите приведение типа и поменяйте тип проекта на MultiByte вместо Unicode.

Последний раз редактировалось Пепел Феникса; 26.02.2016 в 22:18.
PshPsh вне форума Ответить с цитированием
Старый 26.02.2016, 22:21   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кроме некоторых случаев приведение типов говорит что вы сделали что-то не так.
http://programmersforum.ru/showthrea...hlight=Unicode
http://programmersforum.ru/showpost....22&postcount=5
рассказывать где настройки проекта я не буду.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать развернутое окно 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