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

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

07.08.2010, 22:44. Показов 819. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru