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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2012, 16:20   #1
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос Как создать главное окно диалоговым

Не могу создать главное окно диалоговым:
Код:
// Dialog.cpp: определяет точку входа для приложения.
//

#include "stdafx.h"
#include "Dialog.h"

#define MAX_LOADSTRING 100

// Глобальные переменные:
HINSTANCE hInst;								// текущий экземпляр
HWND hWnd; // дискриптор окна

// Отправить объявления функций, включенных в этот модуль кода:
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK	About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	int ret;
	ret = DialogBox(hInstance, "Win32Api", hWnd, WndProc);
	return ret;
}






//
//  ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  НАЗНАЧЕНИЕ:  обрабатывает сообщения в главном окне.
//
//  WM_COMMAND	- обработка меню приложения
//  WM_PAINT	-Закрасить главное окно
//  WM_DESTROY	 - ввести сообщение о выходе и вернуться.
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Разобрать выбор в меню:
		switch (wmId)
		{
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		// TODO: добавьте любой код отрисовки...
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

// Обработчик сообщений для окна "О программе".
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);
	switch (message)
	{
	case WM_INITDIALOG:
		return (INT_PTR)TRUE;

	case WM_COMMAND:
		if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
		{
			EndDialog(hDlg, LOWORD(wParam));
			return (INT_PTR)TRUE;
		}
		break;
	}
	return (INT_PTR)FALSE;
}
VS 2010 выдает ошибки


1>------ Построение начато: проект: Dialog, Конфигурация: Debug Win32 ------
1>Построение начато 02.08.2012 15:19:11.
1>InitializeBuildStatus:
1> Обращение к "Debug\Dialog.unsuccessfulbuild ".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> Dialog.cpp
1>d:\my programs\winapi\dialog\dialog\dialo g.cpp(23): error C2664: DialogBoxParamA: невозможно преобразовать параметр 4 из "LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)" в "DLGPROC"
1> Конечному типу не соответствует ни одной функции с данным именем в области видимости
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.07
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Подскажите плиз
Sylar9 вне форума Ответить с цитированием
Старый 02.08.2012, 16:52   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Не путайте WNDPROC и DLGPROC - это весьма разные вещи.
waleri вне форума Ответить с цитированием
Старый 03.08.2012, 01:13   #3
StIX-S
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 69
По умолчанию

ответ в вашей же теме.
http://programmersforum.ru/showthread.php?t=182722
StIX-S вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как посмотреть на главное окно приложения в MVS? Sylar9 Win Api 3 07.01.2012 15:45
Как узнать что главное окно перемещают? Тутонхамон Общие вопросы Delphi 3 09.04.2011 14:21
Как открыть не главное окно программы DimOn4Ik Общие вопросы Delphi 8 13.04.2010 17:23
Как создать главное меню динамически Djonik Общие вопросы Delphi 3 17.02.2009 17:41