Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Структура класса Диалога 2


Автор: Гость_And234 28.11.2005, 11:44
Пишу базу данных на WNAPI без MFC VC6.0
Предполагается MDI фрейм главного окна и CHILD окна для работы с таблицами и отчетами.
Речь идет об объектно-ориентированном программировании по этому я хочу преобразовать оконные функции в класс окна.
т.е. каждому виду CHILD окна соответствует свой класс.

Не могу приобразовать нижеследующий код в один класс для обработки формы.
Приму любые идеи.
Особо интересует механизм передачи сообщений при этом преобразовании.

smile с процедурой StyleDlgProc

Код


#include <windows.h>
#include "prsht.h"
extern HINSTANCE hInst ;
extern HICON hiconApp ;


//-------------------------------------------------------------------
BOOL CALLBACK 
StyleDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_INITDIALOG :
        {
        }
        
    case WM_COMMAND :
        {
           return TRUE ;
        }
        
    case WM_NOTIFY :
        {
         }
    default :
        return FALSE ;
        
    }
    return 0;
    
}


//-------------------------------------------------------------------
BOOL CreatePropertySheet (HWND hwndParent)
{
    PROPSHEETHEADER pshead ;
    PROPSHEETPAGE   pspage[1] ;
    static LPDWORD pTheExStyles ;
    DWORD dwStyleWindowsProper = WS_CHILD | WS_VISIBLE | WS_BORDER | WS_CAPTION ;
    DWORD dwFlagsProper = PSH_PROPTITLE | PSH_PROPSHEETPAGE | PSH_USECALLBACK | PSH_USEHICON;
     
    // Zero out property PAGE data
    ZeroMemory (&pspage, 2 * sizeof (PROPSHEETPAGE)) ;
    
    // PAGE 1 -- window style page
    pspage[0].dwSize      = sizeof (PROPSHEETPAGE) ;
    pspage[0].dwFlags     = PSP_USECALLBACK | PSP_USEICONID ;
    pspage[0].hInstance   = hInst ;
    pspage[0].pszTemplate = MAKEINTRESOURCE (IDD_PROPERTYAPP) ;
    pspage[0].pszIcon     = MAKEINTRESOURCE (hiconApp) ;
    pspage[0].pfnDlgProc  = StyleDlgProc ;
    pspage[0].lParam      = (LPARAM) dwStyleWindowsProper;
    pspage[0].pfnCallback = NULL ;
    
    // Initialize property sheet HEADER data
    ZeroMemory (&pshead, sizeof (PROPSHEETHEADER)) ;
    pshead.dwSize  = sizeof (PROPSHEETHEADER) ;
    pshead.dwFlags = dwFlagsProper;
    pshead.hwndParent  = hwndParent ;
    pshead.hInstance   = hInst ;
    pshead.hIcon       = hiconApp ;
    pshead.pszCaption  = "" ;
    pshead.nPages      = 1 ;
    pshead.nStartPage  = 0 ;
    pshead.ppsp        = pspage ;
    pshead.pfnCallback = NULL ;
    
    // --------- Create & display property sheet --------- 
    
    PropertySheet(&pshead) ;
    return 1;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)