Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 07.08.2010
Сообщений: 9

Еще глюки VC++ 2010

07.08.2010, 22:44. Показов 825. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Короче создаю Win32 апликейшен. Юзаю чистый Винапи. Никаких МФЦ и АТЛ.
Чтобы долго не мудохаться генерю основное окно проджекта из ресурсов. Для этого использую диалог.

Точнее даже 2. Один главный и второй -- эбаут. Вот дефиниция из *.rc файла:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
 
IDD_MAINDLG DIALOGEX 0, 0, 185, 94
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_TOOLWINDOW
CAPTION "   GrymGrab"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
    PUSHBUTTON      "Start",IDM_START,7,73,50,14
    PUSHBUTTON      "About",IDM_ABOUT,68,73,50,14
    PUSHBUTTON      "Exit",IDM_EXIT,128,73,50,14
END
 
IDD_ABTDLG DIALOGEX 0, 0, 316, 180
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "   About"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "Close",IDA_CLOSE,259,159,50,14
END
А вот главная прога:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <windows.h>
#include <process.h>
#include "resource.h"
 
HWND hWnd;
HINSTANCE hTInst;
LOGFONT lf;
HFONT hFont;
 
BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){
    switch (message){
    case WM_INITDIALOG:
        return TRUE;
    case WM_COMMAND:
        if (LOWORD(wParam)==IDA_CLOSE){
            EndDialog(hDlg,0);
            return TRUE;
        }
        break;
    };
    return FALSE;
}
 
LRESULT CALLBACK MainDlgProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
    HDC hdc,memdc;
    PAINTSTRUCT ps;
    char szstatus[64];
 
    switch (message){
    case WM_CREATE: 
        ZeroMemory(&lf,sizeof(lf));     // Font
        strcpy(lf.lfFaceName,"Arial");
        lf.lfHeight=12;
        hFont=CreateFontIndirect(&lf);
        return 0;
    case WM_PAINT:
        hdc=BeginPaint(hWnd,&ps);
        SelectObject(hdc,hFont);
        SetBkMode(hdc,TRANSPARENT);
        TextOut(hdc,14,18,szstatus,wsprintf(szstatus,"Hello, World!"));
        EndPaint(hWnd,&ps);
        return 0;
    case WM_COMMAND:
        switch(LOWORD(wParam)){
        case IDM_START:
 
            return 0;
        case IDM_ABOUT:
            DialogBox(hTInst,MAKEINTRESOURCE(IDD_ABTDLG),hWnd,AboutDlgProc);
            return 0;
        case IDM_EXIT:
            PostMessage(hWnd,WM_CLOSE,0,0);
            return 0;
        };
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;       
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}
 
 
int APIENTRY WinMain (HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow){
    MSG msg;
    WNDCLASS wcl;
    hTInst=hThisInst;
 
    wcl.hInstance       = hThisInst;
    wcl.lpszClassName   = "MAINDLG";
    wcl.lpfnWndProc     = MainDlgProc;
    wcl.style           = CS_HREDRAW | CS_VREDRAW;
    wcl.hIcon           = LoadIcon (hThisInst, IDC_ICON);
    wcl.hCursor         = LoadCursor (hThisInst, IDC_ARROW);
    wcl.lpszMenuName    = NULL;
    wcl.cbClsExtra      = 0;
    wcl.cbWndExtra      = DLGWINDOWEXTRA;
    wcl.hbrBackground   = (HBRUSH)(COLOR_BTNFACE+1);
    if (!RegisterClass (&wcl)) return false;
    hWnd = CreateDialog (hThisInst, MAKEINTRESOURCE(IDD_MAINDLG), 0, (DLGPROC)MainDlgProc);
    if(!hWnd) return false; 
    ShowWindow (hWnd, nCmdShow);
    UpdateWindow (hWnd);
    SetCursor (LoadCursor (NULL, IDC_ARROW));
    while (GetMessage (&msg, NULL, 0, 0)){
        TranslateMessage (&msg) ;
        DispatchMessage (&msg) ;
    }
    return msg.wParam ;
};
Ну и вдогонку resourse.h :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by GrymGrab2.rc
//
#define IDD_MAINDLG                     101
#define IDD_ABTDLG                      102
#define IDA_CLOSE                       1001
#define IDM_START                       1002
#define IDM_ABOUT                       1003
#define IDM_EXIT                        1004
 
// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        103
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1005
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
Имеем следующий ситуасьйон:
1) Главный диалог тупо торчит в левом углу экрана, не двигается, не закрывается (кнопка с красным
крестиком не работает)
2) У дочернего диалога не работает кнопка "клозе". Т.е. вообще не нажимается.

В чем тут цабака порылась?
Помогите пожалуйста...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2010, 22:44
Ответы с готовыми решениями:

Глюки VS 2010 ?
Был у меня один проджект еще в VS 2003. Недавно поставил себе VS 2010 и решил импортировать его в эту новую среду. Как водится, при этом...

Глюки с visual 2010
Создаю консольный проект. Как только, объем кода в файлах включений становиться достаточно большим. visual начинает подтормаживать,...

Глюки в Excel 2010
При выполнения макроса у меня возникали проблемы: 1. При выполнении оператора сравнения операция выполнялась не правильно. s=3 w=3 ...

2
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.08.2010, 23:59
C++
1
2
3
case IDM_EXIT:
    DestroyWindow(hWnd);
    break;
0
2 / 2 / 0
Регистрация: 07.08.2010
Сообщений: 9
08.08.2010, 00:50  [ТС]
Чем плохо
PostMessage(hWnd,WM_CLOSE,0,0);
?
К тому же это не решает проблемы...

Добавлено через 21 минуту
Нашел загвоздку.
В *.rc профтыкал
CLASS "MAINDLG"

Все, тему можно закрывать и даже удалять.
Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2010, 00:50
Помогаю со студенческими работами здесь

подключаю внешний винт + еще одно юсб устройство и начинаются глюки
Помогите, возникла такая проблема есть 2 внешних жёстких диска, когда подключен один жёсткий диск работает идеально, если подключить второй...

Нужно при клике, исключить события hover, во. И еще глюки .hover. Отключение .hover в случае активации .click
Нужно при клике, исключить события hover, во. И 1. Глюки .hover: При наведении на блок, к которому он применяется(стрелочка):...

ACCESS 2010 После добавления еще одной таблицы в форму в этой форме ничего не видно
Помогите, второй день бьюсь! Даже сделал учебную базочку. Есть две связанные таблицы, tbl_Top и tbl_Bottom. Делаю запрос и...

Глюки, опять глюки, и Яша иже с ними.
То ли я не тем пользуюсь, тол Яша со мной повоевать вздумал.... В общем несколько сайтов у Мну - все как один спокойные, показатели...

Подключение и работа с базой данных MS Access 2010 в Visual Studio 2010: VB
Доброго времени суток! Уважаемые гуру програмирования, не моглибы Вы помочь начинающему! Задача: Есть база данный на Access 2010,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru