-Trong câu l nh: ệ m_pMainWnd->ShowWindowSW_SHOW;Đ i thành: ổ => m_pMainWnd->ShowWindowSW_ SHOWMAXIMIZED;// tao cua so cuc dai khi ung dung bat dau chay... ặ B3:Vào fileview-> Header Fi
Trang 1Các câu l nh trong l p trình c trên win ệ ậ
T p tin ậ Vidu1.H : ch a các khai báo liên quan đ n l p Cvidu1App: ứ ế ớ
T p tin ậ MainFrm.H: ch a các khai báo liên quan đ n l p khung c a ứ ế ớ ử
s chính (main frame) c a ng d ng ổ ủ ứ ụ
T p tin ậ Vidu1Doc.H : ch a các khai báo liên quan đ n tài li u ứ ế ệ
T p tin ậ Vidu1.RC : ch a các tài nguyên liên quan đ n menu, phím ứ ế
int xsize =GetSystemMetrics(SM_CXSCREEN);
int ysize =GetSystemMetrics(SM_CYSCREEN);
cs.style&=~(WS_MAXIMIZEBOX);\\ lo i b thu nho phóng to ạ ỏ
cs.style&=~(WS_MINIMIZEBOX);\\ lo i b thu xu ng thanh d ạ ỏ ố ướ i
return true; // đã có trong câu câu l nh ệ
}
3.KHÔNG CHO THAY Đ I KÍCH TH Ổ ƯỚ C C A S LÀM VI C: Ử Ổ Ệ
(vi t trong mi n làm vi c classview->cmainfrane->precreatewindow) ế ề ệ
{ cs.style&=~(WS_MAXIMIZEBOX);\\ lo i b thu nho phóng to ạ ỏ
cs.style&=~(WS_MINIMIZEBOX);\\ lo i b thu xu ng thanh d ạ ỏ ố ướ i
Trang 2-Trong câu l nh: ệ m_pMainWnd->ShowWindow(SW_SHOW);
Đ i thành: ổ
=> m_pMainWnd->ShowWindow(SW_ SHOWMAXIMIZED);// tao cua so cuc dai khi ung dung bat dau chay.
5 T o h p tho i:ạ ộ ạ
B1: Vào resource-> menu->t o tên m c trên thanh menu ạ ụ
- Trong caption: gõ tên s t o khi ch y ch ẽ ạ ạ ươ ng trình.
Vd: B n mu n tao menu thông báo thì trong caption b n gõ : ạ ố ạ
mu n t o phím t t kí t nào thì ch c n đ “&” tr ố ạ ắ ự ỉ ầ ể ướ c kí t t đó ự
Vd :t&hongbao: thì khi ch y nh n alt+H ạ ấ
- Đ a ch ID lúc này đang m , b n mu n nó hi n lên thì kích chu t ị ỉ ờ ạ ố ệ ộ vào pop-up đ b d u check ể ỏ ấ
- Ghi đ a ch vào ID: ị ỉ
B2 :Vào view->CFC classviewzard
- Opject IDs:Ch n tên đ a ch ID c a menu v a t o ọ ị ỉ ủ ừ ạ
- Messager:+ Ch n command: vi t câu l nh cho menu v a t o b ng ọ ế ệ ừ ạ ằ
Trang 3cách click vào nó, n u b n không mu n thay đ i tên thì b n b m ok ế ạ ố ổ ạ ấ (Dùng đ t o h p tho i) ể ạ ộ ạ
IDR_TOOLBAR1-> vào propertise -> đ i tên ổ
- Các nút công c b n v a t o ph i ghi đ a ch ID cho nó b ng cách click ụ ạ ừ ạ ả ị ỉ ằ chu t vào nó ộ
=>B2:Vào classview->ch n m_wndtooolbar ọ
- Trong hàm protected b n có th thêm đ i t ạ ể ố ượ ng hàm Ctoolbar vào ở bên d ướ i:
Ctoolbar tên_đ i t ố ượ ng;
Vd: Ctoolbar hi;
=>B3: Vào CmainFrame -> oncreated() đ i tên nh b ổ ư ướ c2.
Vd:copy đo n mã và đ i tên cho phù h p ạ ổ ợ
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |
WS_VISIBLE | CBRS_TOP
Trang 4| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY |
CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
L u ý: ư - B n ph i thay đ i các tên m_wndtoolbar => hi ạ ả ổ
Trong đó :hi là tên b n t o trong khai báo hàm ctoolbar ạ ạ ở
DockControlBar( CControlBar *pBar, UINT nDockBarID= 0);
pBar : con tr đ i t ỏ ố ượ ng toolbar
nDockBarID : gtr xác đ nh v trí thanh công c ị ị ị ụ
đ di chuy n thanh toolbar ể ể
AFX_IDW_DOCKBAR_TOP : Toolbar x p vào phía trên vùng ế client c a s ử ổ
AFX_IDW_DOCKBAR_BOTTOM : Toolbar x p vào phía d ế ướ i vùng client c a s ử ổ
AFX_IDW_DOCKBAR_LEFT : Toolbar x p vào phía bên trái ế vùng client c a s ử ổ
AFX_IDW_DOCKBAR_RIGHT : Toolbar x p vào phía bên ph i ế ả vùng client c a s ử ổ
Vd:
hi.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&hi,AFX_IDW_DOCKBAR_BOTTOM );
7.Thêm text vào nút toolbar :
Vào cMainfram->cú pháp này được vi t trong Oncreate(…)ế
- Cú pháp:
Trang 5SetButtonText ( int nIndex, LPCTSTR lpszText );
• nIndex: s th t c a nút thêm text ố ứ ự ủ
• lpszText: chu i văn b n thêm vào ỗ ả
Xác đ nh kích th ị ướ c các nút trong toolbar và kích ướ c iMage SetSizes ( SIZE sizeButton, SIZE sizeImage );
B1: vào fileview->source file->MainFrm.cpp
- Trong hàm “static UINT indicators[] =” b n thêm thanh tr ng thái m i ạ ạ ớ Vd: ID_INDICATOR_TG,//do ng ườ i dùng đ t tên ặ
B2:khai báo vao resoure->string table-> string table ->chon hàm có
ID_INDICATOR_ r i đ t tên cho no băng cách kích chu t ph i ->new ồ ặ ộ ả string->go tên
B2:T o hi n th cho cho ch danh: khai báo phía d ạ ể ị ỉ ở ướ i trong
Trong đó: Stbarnew do ng ườ i dùng đ t ặ
B3:Vào fileview-> Header Files-> MainFrm.h
Trang 6II- CÁC HÀM Đ H A: Ồ Ọ
1.T o đ ạ ườ ng th ng: ẳ
B1:T o menu ho c thanh công c nh đã trình bày trên.ạ ặ ụ ư ở
B2:Vào view-> classwinzar
B3:Ch n đ a ch ID ọ ị ỉ c a nút công c v a m i t o thanh toollbar ho c menuủ ụ ừ ớ ạ ở ặ->click vào command->ok->edit code và gõ l nh:ệ
C1:
- Cú pháp: CDC * pDC = GetDC();; // Khai báo thi t b DC ế ị
• ReleaseDC (hWnd, hDC ); // Gi i phóng DC ả
pDC -> LineTo(int X, int Y);
pDC -> MoveToEx(int X, int Y);
pDC->LineTo(p); //chi u dài hình về ẽ
2.Hình ch nh t ữ ậ : ( vi t t ế ượ ng t nh các b ự ư ở ướ ạ c t o đ ườ ng th ng) ẳ
=> Hình ch nh t th ữ ậ ườ : ng
- Cú pháp :
pDC -> Rectangle(int upX, int upY, int lowX, int lowY);
upX, upY: góc trên bên trái
Trang 7- Cú pháp:
pDC-> Ellipse(int upX, int upY, int lowX, int lowY);
upX, upY: góc trên bên trái
pDC-> pie(int upX, int upY, int lowX, int lowY, int Xs, int Ys, int Xe, int Ye);
upX, upY: góc trên bên trái
lowX , lowY : góc d ướ i bên ph i ả
Xs, Ys: Đi m b t đ u cung ể ắ ầ
Xe, Ye: Đi m k t thúc cung ể ế
int y;
} pt[0].x=200;
pt[0].y=300;
pt[1].x=250;
pt[1].y=200;
Trang 9 x, y đi m b t đ u c a chu i ký t trong client ể ắ ầ ủ ỗ ự
string là m t con tr tr đ n m t chu i ký t ộ ỏ ỏ ố ộ ỗ ự
9 Thi t l p màu ch : ế ậ ữ (Ph i đ t tr ả ặ ướ ệ c l nh t o text.) ạ
Trang 10pDC->MoveTo(453,140);
pDC->LineTo(444,155);
pDC->MoveTo(453,140);//MUI pDC->LineTo(462,155);
pDC->MoveTo(444,155);
pDC->LineTo(462,155);
pDC->MoveTo(453,180);//MIENG pDC->LineTo(428,170);
Trang 11pDC->LineTo(375,600);//chan pDC->MoveTo(530,400);
B2:T o ngu n Bitmap trong t p tài nguyên có đuôi rc b ng cách: ạ ồ ậ ằ
Ch n file ->open->ch n đuôi rc(trong save as ch n text)->open- ọ ọ ọ
CBitmap bm;//khai báo
bm.LoadBitmap(ID_BITMAP);//n p bitmap t tài nguyên.ạ ừ
CDC*pDC=GetDC();
CDC mDC;
mDC.CreateCompatibleDC(pDC); //Đ t đạ ượ c DC c a b nh s ch a bitmap ủ ộ ớ ẽ ứ
mDC.SelectObject(bm);// Ch n bitmap trong device context c a ọ ủ
b nh ộ ớ
Trang 12BITMAP TT;//khai báobm.GetObject(sizeof(TT),&TT);//nh p thơng tin c a bitmapậ ủpDC->BitBlt (100,300,TT.bmWidth,TT.bmHeight,&mDC,0,0,SRCCOPY);
//Sao chép bitmap t DC c a b nh sang DC c a c a s ừ ủ ộ ớ ủ ử ổ
-Trong đĩ:bm,TT,mDC:do ng ườ ậ i l p trình đ t ặ
B5: vào resouce.h đ nh nghĩa.ị
#define ID_BITMAP 32804 //s này khơng trùng v i số ớ ố phía trên
ở
B6:ch y chạ ương trình
11.T o font cho text: ạ
B1: t o ra text đã h c trên ạ ọ ở
B2:thi t l p font:đ ế ậ ượ c vi t trên text ế
CFont Font;//do ng ườ ậ l p trình đ t tên ặ
B3: g i ọ
Font CreateFont đ t o ra font cĩ thu c tính xác đ nh ể ạ ộ ị
Font.CreateFont(int Height, //kích th ướ c đi m ể
0, 0, 0, FW_NORMAL, // Đ d y, cĩ th là FW_BOLD ộ ầ ể
0, // n u 1 nghiêng ế
0, // N u 1 g ch d ế ạ ướ i
0, //n u 1 g ch ngang ế ạ 0,0, 0, 0,0,“VNI-Times”); //ki u ch ể ữ
B4: G i ọ SelectObject () cài đ t Font vào vùng client ặ
Font.CreateFont(40,0,0,0,FW_BOLD,0,1,0,0,0,0,0,0,"VNI-Times"); CFont *pFont = (CFont *) pDC->SelectObject(&Font);
SetFont(pFont);
CString str("bạn đã tạo font chữ thành công!!");
pDC->TextOut(400,300,str, str.GetLength());
pDC-> SetTextAlign(TA_CENTER) ;
Trang 13III-HÀM X LÝ THÔNG ĐI P CHU T:Ữ Ệ Ộ
1).T o hình khi nh n chu t: ạ ấ ộ
B1:t o nút tool ho c menu ạ ặ
B2: vào classwinzard ch n l p view, ch n thông đi p chu t trong messagesọ ớ ọ ệ ộ
B3:khai báo bi n b ng cách kích chu t ph i vào l p view ch n Add Memberế ằ ộ ả ớ ọ
Varible…gõ ki u và bi n do ngể ế ườ ậi l p trình đ t.ặ
Vd:t o hình ch nh t và đạ ữ ậ ường th ngẳ
B1:trong thông đi p chu t OnLButtonDownệ ộ
void CBaitap2View::OnLButtonDown(UINT nFlags, CPoint point)
pl.x=point.x;
pl.y=point.y ;lc=2;
}else
{CDC*pDC=GetDC();
if (hinh==2)
{
if (lc==1){
pl.x=point.x;
pl.y=point.y ;lc=2;
}else
Trang 14pDC->MoveTo(pl.x,pl.y);
pDC->LineTo(point.x ,point.y);
lc=1;
}}
Trang 15- B3:vào hàm ondraw gõ l nh mu n th c hi n ệ ố ự ệ
Vd: mu n v hình tròn thì gõ :ố ẽ
if (hinh==1){
p1=point;
lc=2;
}else
Trang 17BITMAP TT;//khai báo
bm.GetObject(sizeof(TT),&TT);//nh?p thông tin c?a bitmap
pDC->BitBlt (p1.x,p1.y,TT.bmWidth,TT.bmHeight,&mDC,0,0,SRCCOPY);
}
Bài t p 2 hình ch y tông vào nhau rôi b t ra ậ ạ ậ
B1:khai bao: int x1,x2,x3,x4,y1,y2,y3,y4,h1,h2;
Trang 19B4: khai bao id_tm:vào view->resource sybol
B5:khai bao trong view
Trang 22p2.x=p2.x-3;
Trang 25p4.y=p4.y-3;
}else{
d=1;
}}
pDC->TextOut(p1.x, p2.y,"Tran Tran Thao", 15);
pDC->TextOut(p3.x, p4.y,"Nguyen Van hien", 15);