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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2013, 09:50   #1
novicepro
Пользователь
 
Регистрация: 01.05.2011
Сообщений: 38
По умолчанию WinApi

Начал изучать WinAPI по книге Ганеева. помогите разобраться, почему выдает ошибку в строке hInstance=hInst;. код из книги.

Весь код программы:
Код:
#include <windows.h>
#define ID_BUTTON 3000

BOOL RegClass(WNDPROC,LPCTSTR,UINT);

LRESULT CALLBACK WndProc (HWND hwnd, 
						  UINT msg, 
						  WPARAM wParam, 
						  LPARAM lParam);

HINSTANCE hInstance;
char szClassName[] = "Example21";

int WINAPI WinMain (HINSTANCE hInstance,                
				    HINSTANCE hPrevInstance, 
				    LPSTR lpCmdLine, 
				    int iCmdShow){
	MSG Msg;
	HWND hwnd;
	hInstance=hInst;
	
	if(!RegClass(WndProc, szClassName, COLOR_WINDOW))
		return FALSE;
	hwnd = CreateWindow(szClassName,"Prilogenie whith button",
					WS_OVERLAPPEDWINDOW, 
					CW_USEDEFAULT, CW_USEDEFAULT,
					0,0,hInstance,NULL);
	if(!hwnd) return FALSE;
	ShowWindow(hwnd,SW_SHOWMAXIMIZED); UpdateWindow(hwnd);
	while (GetMessage(&msg,0,0,0)) DispatchMessage(&msg);
	return msg.wParam;
 }
 
 BOOL RegClass(WNDPROC Proc, LPCTSTR szName, UINT brBackground)
 {
 	WNDCLASS wc;
 	wc.style= wc.cbClsExtra= wc.cbWndExtra= 0;
 	wc.ipfnWndProc= Proc;
 	wc.hInstance= hInstance;
 	wc.hIcon= LoadIcon(NULL, IDI_APPLICATION);
 	wc.hCursor= LoadCursor(NULL, IDC_ARROW);
 	wc.hbrBackground = (HBRUSH)(brBackground+1);
 	wc.lpszMenuName= (LPCTSTR)NULL;
 	wc.lpszClassName = szName;
 	return (RegClass(&wc)! = 0);
 }

LRESULT CALLBACK WndProc (HWND hwnd, 
						  UINT msg, 
						  WPARAM wParam, 
						  LPARAM lParam)
{
	static HWND hButton;
	switch(msg)
		{
		case WM_CREATE:
		{
			hButton = CreateWindow("button","PrimBut",
						WS_CHILD | WS_VISIBLE | 
						BS_DEFPUSHBUTTON, 0,0,200,20, hwnd,
						(HMENU)ID_BUTTON, hInstance, NULL);
			return 0;
		}
		case WM_DESTROY:
		{
			PostQuitMessage(0);
			return 0;
		}
	return DefWindowProc(hwnd, msg, wParam, lParam);		
}
novicepro вне форума Ответить с цитированием
Старый 13.04.2013, 10:31   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Что-то не так списали.

Код:
HINSTANCE hInstance;
char szClassName[] = "Example21";

int WINAPI WinMain (HINSTANCE hInstance,
Видите две переменные с одинаковыми именами? Видите, что переменной с именем hInst нет?
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 02.11.2015, 21:13   #3
SashaEs
 
Регистрация: 02.11.2015
Сообщений: 3
По умолчанию

а как создать окно с 2мя кнопками????
SashaEs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
winapi vovik4385 Visual C++ 7 26.09.2012 09:57
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) Артём1991 Помощь студентам 0 25.03.2012 17:13
Com и winapi AFA Общие вопросы C/C++ 6 09.05.2011 15:46
БД на WinApi yngwie Win Api 3 09.03.2009 20:54