|
|
|
|
|
для: cheops
(24.01.2007 в 23:25)
| | Хм... Работает... Построчно придётся сравнивать, чтобы докапаться до ошибки. Ну да ладно, этим потом займусь, всё равно для разработки справвочника буду пользоваться графическим интерфейсом. Спасбо за помощь! | |
|
|
|
|
 14.9 Кб |
|
|
для: EvgenLog
(24.01.2007 в 23:20)
| | Держите мой проект...
PS Тема уже достаточно большая наверное нужно бы новую завести для продолжения... | |
|
|
|
|
|
|
|
для: EvgenLog
(24.01.2007 в 23:10)
| | Опять нет результата. Я вот подумал правилен-ли вот этот код?
switch(iMsg)
{
case WM_SHOWWINDOW:
case WM_SIZE:
hDc = BeginPaint(hWnd, &ps);
DrawBitmap(hDc, bmPicture, 100, 100);
EndPaint(hWnd, &ps);
return 0;
case WM_PAINT :
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
|
Петзольд пишет, что нельзя вот так делать:
case WM_PAINT :
return 0;
|
| |
|
|
|
|
|
|
|
для: EvgenLog
(24.01.2007 в 23:10)
| | В самый низ нельзя :), так как программа по сути выполняется в цикле
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} |
Вот так напишите
wndclass.cbSize = sizeof(wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
wndclass.lpszClassName = szAppName;
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
bmPicture = LoadBitmap(wndclass.hInstance, MAKEINTRESOURCE(IDB_BITMAP1)); |
или просто оставьте в начале, но засобачьте вместо wndclass.hInstance - hInstance, вы же в WinMain() находитесь можете использовать оригинальный дескриптор. | |
|
|
|
|
|
|
|
для: cheops
(24.01.2007 в 23:06)
| | Ха! Да что ты будешь делать!
Переместил
bmPicture = LoadBitmap(wndclass.hInstance, MAKEINTRESOURCE(IDB_BITMAP2));
|
В самый низ WinMain(), опять без результата! Может вы мне вышлите код в таком виде, в котором он у вас работает? | |
|
|
|
|
|
|
|
для: EvgenLog
(24.01.2007 в 23:03)
| | Только сейчас заметил - вы используете wndclass.hInstance в LoadBitmap() до того, как он определён парой строчек ниже... поэтому в качестве первого параметра опять передаётся NULL. Поместите LoadBitmap() ниже в WinMain(). | |
|
|
|
|
 1.4 Кб |
|
|
для: cheops
(24.01.2007 в 23:00)
| | Вот как выглядит файл main.cpp. В архив не включены ресурсы. | |
|
|
|
|
|
|
|
для: cheops
(24.01.2007 в 22:39)
| | Вобщем нужно помечать перекрываемую область как недействительную и перерисовывать только её? | |
|
|
|
|
|
|
|
для: EvgenLog
(24.01.2007 в 22:49)
| | Странно - у меня работает - прикрепите файл, в том виде, котором он у вас сейчас. | |
|
|
|
|
|
|
|
для: EvgenLog
(24.01.2007 в 22:32)
| | В том и дело, что WM_SIZE тоже очень много возникает - нужно перерисовывать только тогда, когда задевается рисунок, причём, если окно только расширяется и задевает изображение. | |
|
|
|
|