programowanie windows

8
Programowanie Windows W środowisku Visual C+ + Część II Anna Tomkowska Politechnika Koszalińska 2007

Upload: hiroko

Post on 04-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Programowanie Windows. W środowisku Visual C++ Część II. Anna Tomkowska Politechnika Koszalińska 2007. 1/7. Wyświetlanie tekstu. COLORREF fontColor = RGB(0,0,0); ; … LRESULT CALLBACK WndProc ( … ) { … LOGFONT lf; HFONT hfont; case WM_PAINT: … SetTextColor(hdc, kolorCzcionki); - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Programowanie Windows

Programowanie Windows

W środowisku Visual C++Część II

Anna TomkowskaPolitechnika Koszalińska 2007

Page 2: Programowanie Windows

Wyświetlanie tekstuCOLORREF fontColor = RGB(0,0,0);;…LRESULT CALLBACK WndProc( …){…LOGFONT lf;HFONT hfont; case WM_PAINT:

…SetTextColor(hdc, kolorCzcionki);SetBkMode(hdc,TRANSPARENT);memset(&lf,0,sizeof(lf));lf.lfItalic=1;_tcscpy( lf.lfFaceName, TEXT("Times New Roman") );hfont=CreateFontIndirect(&lf);hfont=(HFONT) SelectObject(hdc,hfont);TextOut(hdc,100,100,TEXT("ABCdefg"),7);DrawText(hdc,TEXT(„ab"),-1,&rc,DT_CENTER|DT_VCENTER|DT_SINGLELINE);hfont=(HFONT) SelectObject(hdc,hfont);DeleteObject(hfont);…

return 0;…

1/7

Page 3: Programowanie Windows

Wyświetlanie dialoguBOOL CALLBACK DialogProc(HWND,UINT,WPARAM, LPARAM);…

LRESULT CALLBACK WndProc(…){… case WM_COMMAND:

…case ID_OPCJE_KOLOR:

if( DialogBox (hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd,(DLGPROC)DlgProc) )

InvalidateRect(hWnd,0,1);break;

…}

BOOL CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam, LPARAM lParam){…}

2/7

Page 4: Programowanie Windows

Niestandardowe kontrolki#include <commctrl.h>

int WINAPI( …){ InitCommonControls();…}

Project → Properties Configurations Properties- → Linker → Command LineAdditional Options:comctl32.lib

Dodać bibliotekęcomctl32.lib

3/7

Page 5: Programowanie Windows

Ustawianie wart. początkowychBOOL CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam, LPARAM lParam){static COLORREF kolor = RGB(0,0,0);static HWND hOkienko; switch(uMsg) { case WM_INITDIALOG:

hOkienko=GetDlgItem(hDlg,IDC_COLOR);SetDlgItemInt(hDlg,IDC_EDIT1,GetRValue(kolor),0);…SendDlgItemMessage(hDlg,IDC_SLIDER1,TBM_SETRANGE,

TRUE,MAKELONG(0,255));…SendDlgItemMessage(hDlg,IDC_SLIDER1,TBM_SETPOS,

TRUE,GetRValue(kolor));…

return 1; case WM_CLOSE:

EndDialog(hwndDlg,FALSE); return 1; }…

4/7

Page 6: Programowanie Windows

Komunikat WM_COMMANDBOOL CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam, LPARAM lParam){… case WM_COMMAND: switch (LOWORD(wParam))

{case IDOK: fontColor = kolor; EndDialog(hwndDlg,TRUE);return 1;

case IDCANCEL: EndDialog(hwndDlg,FALSE); return 1;

} return 1;…}

5/7

Page 7: Programowanie Windows

Komunikat WM_COMMANDBOOL CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam, LPARAM lParam){… case WM_COMMAND: switch (LOWORD(wParam))

{ … case IDC_EDIT1: {

int R = GetDlgItemInt(hDlg,IDC_EDIT1,NULL,0);kolor=RGB(R,GetGValue(kolor),GetBValue(kolor));SendDlgItemMessage(hDlg,IDC_SLIDER1,TBM_SETPOS,

TRUE,GetRValue(kolor));

InvalidateRect(hwndDlg,0,0); } return 1; …

} return 1;

…}

6/7

Page 8: Programowanie Windows

Komunikat WM_PAINTBOOL CALLBACK DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam, LPARAM lParam){…HBRUSH hbrush;RECT rc;

… case WM_PAINT:

hdc=BeginPaint(hOkienko,&ps);hbrush=CreateSolidBrush(kolor);hbrush=(HBRUSH) SelectObject(hdc,hbrush);GetClientRect(hOkienko,&rc);Rectangle(hdc,0,0,rc.right,rc.bottom);hbrush=(HBRUSH) SelectObject(hdc,hbrush);DeleteObject(hbrush);EndPaint(hOkienko,&ps);

break; …

7/7