Czas
· odmierzanie czasu za pomocą zegarów :
· niezależna funkcja obsługi
· reakcja na komunikat WM_TIMER
UINT CWnd::SetTimer( UINT nIDEvent,
UINT nElapse, //ms
void (CALLBACK EXPORT* lpfnTimer)
(HWND, UINT, UINT, DWORD) );
void CALLBACK EXPORT TimerProc(
HWND hWnd, //handle of CWnd
//that called SetTimer
UINT nMsg, //WM_TIMER
UINT nIDEvent, //timer identification
DWORD dwTime //system time
);
BOOL CWnd::KillTimer( int nIDEvent );
Okna Dialogowe
· modalne okna dialogowe
· nie modalne okna dialogowe
Dialogi Systemowe
· wybór koloru ® klasa CColorDialog
CColorDialog Color1; // domyślny czarny
CColorDialog Color2 ( RGB ( 255, 0 , 0 ) );
COLORREF crColor;
if (Color1.DoModal() == IDOK)
crColor = Color1.GetColor ( ) ;
· wybór czcionki ® CFontDialog
CFontDialog WhichFont ;
if (WhichFont.DoModal() == IDOK)
{ . . . . }
/* GetCurrentFont GetFaceName
GetStyleName GetSize
GetColor GetWeight
IsStrikeOut IsUnderline
IsBold IsItalic */
· wybór pliku
CFileDialog WhichFile ( TRUE );
if (WhichFile.DoModal() == IDOK)
/* GetPathName GetFileName GetFileExt /*
(można zadawać nazwę początkową i filtry)
· zapisz jako plik
CFileDialog NewFileName ( FALSE );
· drukowanie
CPrintDialog MyPrint( FALSE );
if (MyPrint.DoModal() == IDOK)
/* GetCopies GetDeviceName GetDevMode GetDriverName GetFromPage GetToPage
GetPortName PrintAll PrintRange */
· ustawienie strony wydruku
CPrintDialog MyPage1( TRUE );
//bez marginesów
CPageSetupDialog MyPage2 ( ) ;
// marginesy, widok
Tworzenie Okien Dialogowych
· Edytor Zasobów ® przycisk narzędzi NewDialog ® IDD_DIALOG1 ® generowany jest zasób opisujący okno
C
MyDialog
OK
Cancel
· Generator Klas ® CMyDialog : CDialog
(IDD_DIALOG1)
enum { IDD = ID_DIALOG1 }; // mydialog.h
CMyDialog::CMyDialog(CWnd* pParent
/*=NULL*/)
: CDialog(CMyDialog::IDD, pParent)
{ ... } // mydialog.cpp
· myview.cpp
#include ”mydialog.h”
· mywiew.cpp
CMyDialog dialog;
dialog.DoModal( );
· obsługa OK i Cancel
CDialog::OnOK i CDialog::OnCancel
· wartości funkcji DoModal :
IDOK , IDCANCEL
Elementy Sterujące
· przyciski jednopozycyjne ( Buttons ) ® CButton
· parametry : identyfikator , opis , widoczny / niedostępny , tabulator , przycisk domyślny
· Lista &Błędów
dotyczy wszystkich elementów sterujących
· kolejność tabulacji
Layout / Tab Order ® lewy przycisk myszki
· naciśnięcie przycisku ® komunikat ® funkcja obsługi w klasie CMyDialog (Generator Klas)
· wyświetlanie opisu przycisku z zasobów (dotyczy wszystkich elementów sterujących) :
· pole opisu pozostawić puste
· w klasie CMyDialog obsługa komunikatu WM_INITDIALOG
CMyDialog::SetDlgItemText
( UINT idButton, CString szString );
· przykład
BOOL CMyDialog::OnInitDialog ( )
{ CDialog::OnInitDialog ( );
// TODO: Add extra initialization here
CString str;
str.LoadString(IDS_BUTTON_NEXT);
SetDlgItemText(IDC_BUTTON1, str);
return TRUE;
}
· pola tekstowe ( statyczne ) i ramki
(mają identyfikatory)
Kolor Niebieski
N+1N
NN
Nazwa Towaru:
Śruba M6 x 35 |
· wymiana informacji z elementami sterującymi :
· obiekt klasy reprezentującej element np. CButton, CListBox, CEdit
· proste zmienne np. int BOOL, CString ® DialogDataExchange wywoływane z funkcji CWnd::UpdateData
·
Ö
· niezależne przyciski wyboru
( Check Boxes ) CButton
· Edytor Zasobów potem Generator Klas:
(CMyDialog)
· zmienna rodzaju Control ( np. m_Box typu CButton ) albo
· zmienna rodzaju Value (np. m_bChecked typu BOOL)
· stan początkowy przycisku (stand. nie zaznaczony ) OnInitDialog :
m_Box.SetCheck( 1 ); // przycisk wybrany
albo
m_bChecked = 1;
UpdateData ( FALSE );
· odczytanie stanu przycisku po zamknięciu okna OnOK :
BOOL bState = m_Box.GetCheck ( );
albo...
webss