_Step_
Зарегистрирован: 15.11.2005 Сообщения: 4
|
Добавлено: Пт Апр 07 2006 03:21 Заголовок сообщения: Проблемы с компиляцией...... |
|
|
Помогите пожалуйста, скоро с ума сойду...........
Вобщем учусь программировать под WIN32 API, набираю код, создаю файл ресурсов (кстати работаю в Borland C++ 5.02) нажимаю кнопочку "компиляция и компоновка", а компилятор выдаёт мне кучу ошибок как в исходном коде так и в файле ресурсов....... я посмотрел вроде ошибок быть не должно........... Вот исходный текст программы:
Код: |
#define MI_BLUE 100
#define MI_GREEN 101
#define MI_EXIT 102
//.............. Прототипы функций ............................................
LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM);
BOOL OnCreate (HWND,LPCREATESTRUCT);
void OnPaint (HWND);
void OnCommand (HWND, int, HWND, UINT);
void OnDestroy (HWND);
//............. Сама программа ................................................
#include <windows.h>
#include <windowsx.h>
#include "prog0009.h"
HBRUSH hBlueBrush, hGreenBrush; //Дескрипторы кистей фона
int sw; //Преключатель для управления фоном окна
//............. Главная функция WinMain ....................................
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
char szClassName[] = "MainWindow";
char szTitle[] = "2 Л.Р. Выполнил ст.гр. КСД-03б Джура В.П.";
MSG Msg;
WNDCLASS wc;
memset(&wc,0,sizeof(wc)); //Обнуление памяти
wc.lpfnWndProc=WndProc;
wc.hInstance=hInst;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = GetStockBrush(RGB(236,233,216));
wc.lpszMenuName="MyMain"; //Имя меню в файле ресурсов
wc.lpszClassName=szClassName;
RegisterClass(&wc);
//........... Создание главного окна и его отображение .....................
HWND hwnd=CreateWindow(szClassName,szTitle,WS_OVERLAPPEDWINDOW,10,10,200,100,
HWND_DESKTOP,NULL,hInst,NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
//........... Цикл обработки соосообщений...................................
while (GetMessage(&Msg,NULL,0,0))
DispatchMessage(&Msg);
return 0;
}
//.................. Оконная функция WndProc главного окна ....................
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
//case WM_COMMAND:
//OnCommand;
HANDLE_MSG(hwnd, WM_COMMAND, OnCommand);
//case WM_CREATE
//OnCreate;//
HANDLE_MSG(hwnd, WM_CREATE, OnCreate);
//case WM_PAINT
//OnPaint;//
HANDLE_MSG(hwnd, WM_PAINT, OnPaint);
//case WM_DESTROY
//OnDestroy;//
HANDLE_MSG(hwnd, WM_DESTROY, OnDestroy);
default:
return (DefWindowProc(hwnd,msg,wParam,lParam));
}
}
//................... Функция OnCreate обработки сообщений WM_CREATE ..........
BOOL OnCreate(HWND,LPCREATESTRUCT) {
hBlueBrush=CreateSolidBrush(RGB(100,100,255));
hGreenBrush=CreateSolidBrush(RGB(100,255,100));
return TRUE;
}
//.................. Функия OnCommand обработки сообщений WM_COMMAND ..........
void OnCommand (HWND hwnd,int id, HWND, UINT) {
switch(id) {
case MI_BLUE:
sw=1;
InvalidateRect(hwnd,NULL,TRUE);
break;
case MI_GREEN:
sw=2;
InvalidateRect(hwnd,NULL,TRUE);
break;
case MI_EXIT:
DestroyWindow(hwnd);
}
}
//.................. Функция OnPaint обработки сообщений WM_PAINT .............
void OnPaint (HWND hwnd) {
PAINTSTRUCT ps; //Структура для функции BeginPaint()
HDC hdc=BeginPaint(hwnd,&ps); //Получим контекст устройства
if (sw==1)
FillRect(hdc,&ps.rcPaint,hBlueBrush);
if (sw==2)
FillRect(hdc,&ps.rcPaint,hGreenBrush);
EndPaint(hwnd,&ps);
}
//................. Функция OnDestroy обработки сообщения WM_DESTROY ..........
void OnDestroy(HWND) {
PostQuitMessage(0);
}
|
И вот код файла ресурсов:
Код: |
#include "proj0009.h"
MyMain MENU
{
POPUP "&Фон"
{
MENUITEM "&Голубой", MI_BLUE
MENUITEM "&Зеленый", MI_GREEN
MENUITEM SEPARATOR
MENUITEM "&Выход", MI_EXIT
}
}
|
P.S. Может мне стоит перейти на Microsoft Visual C++ 6.0? |
|