|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 20, 2003 06:42:31 · Поправил: profi_r Здравствуйте все! Я понимаю, что вопрос не полностью подходит к тематике форума, но к сожалению из-за глюков инета открывается только ваш сайт и несколько других. У меня такой вопрос: у меня стоит MS Visual C++ 6.0 без патчей и т.п. Я на него перешол примерно неделю назад. Мне тут в универе дали задание с помошью алгоритмов ЦДА и Брезенхема нарисовать линии. Я хочу создать пустое окошко и там рисовать, НО у меня никак не получается его создать. Как ни странно примерно то же самое работает на MASM8 без всяких проблем. А на С++ CreateWindowEx возвращает ошибку - типа чето ему в классе не нравиться. Мож кто поможет. Вот код: char *szPaintClass="PaintWin"; .... int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hWnd; WNDCLASSEX wc; MSG msg; hInst=hInstance; HWND hwndDlg = CreateDialogParam(hInstance, MAKEINTRESOURCE(ID_MyDialog), NULL, (DLGPROC)DialogProc, NULL); if (hwndDlg == 0) return -1; wc.cbSize = sizeof(wc); wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC) WndProcPaint; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInst; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH) (COLOR_WINDOW+1); wc.lpszMenuName = NULL; wc.lpszClassName = szPaintClass; wc.hIcon = NULL; wc.hIconSm = NULL; RegisterClassEx(&wc); hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,szPaintClass,0,WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 10,10,100,100,hwndDlg,(HMENU)ID_PAINTWIN,hInst,NULL); if (hWnd!=0){ ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); } while(GetMessage( &msg, NULL, 0x00, 0x00)) { if(!IsDialogMessage(hwndDlg, &msg)){ TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } |
|
|
Дата: Сен 20, 2003 07:06:59 Скорее всего ему стили не нравятся или меню в ресурсах не правильно объявлено. Да и вообще какое у кнопки меню может быть? ЗЫ: А почему бы эту программу не написать на ассемблере? Я так уже не раз делал. Даже курсовик по Технологиям Разработки Программных Систем 8-P |
|
|
Дата: Сен 20, 2003 07:20:35 Black_mirror Да и вообще какое у кнопки меню может быть? Судя по коду, это вовсе не кнопка. BS_DEFPUSHBUTTON не должен вас смущать :) И не меню там, а идентификатор дочернего окна. profi_r Только дебаггером. Может RegisterClassEx не пашет? |
|
|
Дата: Сен 20, 2003 10:15:41 Может RegisterClassEx не пашет? RegisterClassEx пашет. Если данное окно прицепить к обычному то оно появляется. Правда, ввиду отсутсвия файла ресурсов, от меню пришлось отказаться. |
|
|
Дата: Сен 20, 2003 11:54:20 install sp5 for vs6. |
|
|
Дата: Сен 20, 2003 12:05:12 profi_r Я избавляюсь от такого очень просто GetLastError от каждой функции Или в VS пишите в отладке окне переменных @err и он показывает Потом утилита ErrorLookup и смотрите.. И всё ОК. |
|
|
Дата: Сен 20, 2003 14:04:28 Black_mirror, я бы написал на асме, но мне надо побыстрее это сделать. Я знаю точно, что это не касяк сишки - это чтото с ресурсами или он не хочет обычное окно прицеплять к диалоговому. А вобще мне надо просто на диалоге приляпать пустое окно, чтоб в нем рисовать. Если кто знает подскажите как такое написать. Можно с использованием MFC. Вот исходник, который я крутил... 461069122__LinesDraw.rar |
|
|
Дата: Сен 20, 2003 16:58:18 На диалоге (используя редактор ресурсов) кинь обычную кнопку - сделай ей "Owner draw" стиль - а потом 'сядь' на WM_DRAWITEM в процедуре диалога и рисуй, что нужно. Если данные для рисунка меняются - вызывать InvalidateRect() на эту кнопку. |
|
|
Дата: Сен 20, 2003 20:36:58 AsmGuru62 кинь обычную кнопку или статик. Black_mirror Правда, ввиду отсутсвия файла ресурсов, от меню пришлось отказаться Какое меню? Не видать там никакого меню. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.078 |