Форум программистов, компьютерный форум CyberForum.ru

CTabCtrl - как с ним работать? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Требуется осуществить шифрование файлов по схеме публичного ключа http://www.cyberforum.ru/cpp-beginners/thread464961.html
Господа! Нужна помощь опытных людей в использовании CryptoAPI. Требуется осуществить шифрование файлов по схеме публичного ключа. Зашифровывать нужно на основе приватного ключа, расшифровывать, ессно, публичным. Я так понял, что шифровать приватным ключом напрямую нельзя, им шифруется только сессионный, а сессионным - собсно данные. Ну да бог с ним. Зашифровать получается, расшифровать...
C++ Как получить адресс функции находящейся в классе? посмотрите плз.. не вдаваясь в извращенную задумку, задача такова: нужно получить адрес функции из класса... class MyClass { public: typedef int (*func)(int); int F1(int x); }; http://www.cyberforum.ru/cpp-beginners/thread464957.html
Как передать функцию в качестве параметра? C++
Помгите плиз, не получается передать одну функцию как параметр другой я пробовал так: в заголовочном файле: typedef double (*func)( double ); в имплементации: inline void CAppView::Approximate(double a, double b, func F) {} - это всё работает а вот собственно вызов Approximate(a,b,F); выдаёт ошибку: cannot convert parameter 3 from 'double (double)' to 'double (__cdecl *)(double)'
Запуск/остановка сервайсов под NT/2000 C++
Привет, может кто-нибудь подскажет как можно программно остановить/запустить любые сервайсы под NT/2000. Что для этого надо знать о сервайсе? Возможно, уже есть какая-то утилита для этого? Тогда можно было бы из своей программы запускать ее с определенными параметрами... В общем, если у кого-нибудь есть идеи как это можно провернуть, то прошу поделиться, буду очень благодарен :)
C++ Автоматическое добавление источника данных http://www.cyberforum.ru/cpp-beginners/thread464952.html
Я пишу простое приложение с поддержкой БД ODBC. Как мне сделать, чтобы при инсталяции (или первом запуске) мой Access файл с БД автоматически добавлялся в источник данных ODBC а Панели управления? Заранее благодарен.
C++ Список имен функций из dll Как в VC++ узнать список имен функций, содержащихся в dll ? подробнее

Показать сообщение отдельно
Tremr
Сообщений: n/a
01.01.2009, 16:03     CTabCtrl - как с ним работать?
Вот откопал код реализующий закладки с помощью TabCtrl. В моей программе три закладки. Их я создал в визуальном редакторе и назначил классы от CDialog. Ну убрал из них конечно заголовки окна и т. п. Вот короче код:

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
BOOL CMonitorDlg::OnInitDialog() 
{
    CDialog::OnInitDialog();
 
    TC_ITEM tci;   // в нее записываются параметры создаваемой закладки
 
    memset(&tci,0,sizeof(tci));
    tci.mask = TCIF_TEXT;    // у закладки будет только текст
 
    tci.pszText = 'Объекты'; // название закладки
    m_Tab.InsertItem(0, &tci); // первая закладка имеет индекс 0
 
    tci.pszText = 'Монитор';
    m_Tab.InsertItem(1, &tci);  // вставляем вторую закладку
 
    tci.pszText = 'Параметры';
    m_Tab.InsertItem(2, &tci);  // вставляем вторую закладку
 
    
    //Задаём показ первой закладки при создании окна MonitorDlg
    NMHDR hdr;
 
    hdr.code = TCN_SELCHANGE;
    hdr.hwndFrom = m_Tab.m_hWnd;
 
    SendMessage ( WM_NOTIFY, m_Tab.GetDlgCtrlID(), (LPARAM)&hdr );
 
  
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}
 
void CMonitorDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) 
{
    //int id; // ID диалога 
    /**Здесь я кое-что изменил. Не стал удалять окна а просто гасить и выводить заново.
    вродебы работает. Строки предыдущего варианта не стал удалять на всякий случай.
    Я просто их забил. Только в новом варианте нужно объявить объекты окон-закладок
В файле заголовке родительского окна*/
 
  // надо сначала удалить предыдущий диалог в Tab Control'е:
  if (m_pTabDlg)
  {
    //m_pTabDlg->DestroyWindow();
    //delete m_pTabDlg;
    m_pTabDlg->ShowWindow ( SW_HIDE ); // Вместо удаления    закладки, я здесь просто                                                                                            //прячу ее
  }
 
  // теперь в зависимости от того, какая закладка выбрана, 
  // выбираем соотв. диалог
  switch( m_Tab.GetCurSel()+1 ) // +1 для того, чтобы порядковые номера закладок
                                // и диалогов совпадали с номерами в case
  {
    // первая закладка
    case 1 :
          //id = IDD_TabObject;
          //m_pTabDlg = new CPageObject;
          m_pTabDlg = &m_TabObject; 
            // тип указателя соответствует нужному диалогу,
            // иначе добавленный в диалог код не будет функционировать
    break;
 
    // вторая закладка
    case 2 :
          //id = IDD_TabMonitor;
          //m_pTabDlg = new CPageMonitor;
          m_pTabDlg = &m_TabMonitor;
    break;
 
     // Третья закладка
    case 3 :
          //id = IDD_TabOptions;
          //m_pTabDlg = new CPageOptions;
          m_pTabDlg = &m_TabOptions;
    break;
 
    // все остальные закладки, если они есть,
    // будут здесь тоже представлены, каждая - отдельным case
 
    // а если обработка такого номера не предусмотрена
    default:
       /*m_pTabDlg = new CDialog; // новый пустой диалог
       return;*/
        m_pTabDlg = &m_TabMonitor;
        break;
 
   } // end switch
 
  // создаем диалог
  //m_pTabDlg->Create (id, (CWnd*)&m_Tab); //параметры: ресурс диалога и родитель
 
  CRect rc; 
 
  m_Tab.GetWindowRect (&rc); // получаем 'рабочую область'
  m_Tab.ScreenToClient (&rc); // преобразуем в относительные координаты
 
  // исключаем область, где отображаются названия закладок:
  m_Tab.AdjustRect (FALSE, &rc); 
 
  // помещаем диалог на место..
  m_pTabDlg->MoveWindow (&rc);
 
  // и показываем:
  m_pTabDlg->ShowWindow ( SW_SHOWNORMAL );
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru