windows 程序设计
DESCRIPTION
Windows 程序设计. 主讲:王茂芝 副教授 [email protected]. 参考文献. [1] Windows 程序设计 [ 第 5 版 , 上下册 ] 北京大学出版社 2004 年 , ¥ 160 [2] 黄维通 . Visual C++ 面向对象与可视化程序设计 , 清华大学出版社 ,2000 年 , ¥ 26 [3] 王世同 . VC++6.0 编程基础 , 清华大学出版社 ,1999 年 , ¥ 19.8 [4] 刘文智 . VC++6.0 教程 , 电子工业出版社 , 2000 年 , ¥ 35. 几个概念. C C++ - PowerPoint PPT PresentationTRANSCRIPT
-
Windows [email protected]
-
[1] Windows[5,] 2004, 160[2] . Visual C++,,2000,26[3] . VC++6.0, ,1999,19.8[4] . VC++6.0, , 2000, 35
-
CC++VC++MFCWindows
-
APIMFCVC++ 6.0Visual Studio()OS(Win32)
-
windowsC:Cwindows32C.,MS VC++ 6.0
-
1.1 windowsWindows1981,IBM PC,PCMS-DOS.,.WindowsMS198311,198511.()Windows2.0198711.()Windows3.01990522.MS windows3.119924.19937windows NT32windows.Windows9519958.(32)Windows9819986.
-
WindowsWindows98windows NT32.Windows(GUI).GUI.WYSIWYG( what you see is what you get:).
-
Windows.Windows,.DLL.Kernel32.dll:I/O.User32.dll,.GDI32.dll,.
-
()windows,windowsC.C,windowsDLL.
-
1.2 windowsAPI,API.API,.16windowsAPI(windows1.0windows3.0)win16.32windowsAPI(windows95windows98windows NT)win32.
-
windowsCAPIwindows.,windows.MS VBBorland DelphiMFCC++windows.JavaWindows,API,.
-
MS VC++6.0,.MS VC++Cwindows.MSDN: microsoft developer network
-
API http://www.microsoft.com/msdn/
-
1.3 windows #include stdio.h int main(){ printf(hello, world\n); return 0;}
-
Windowsinclude,,. #include windows.h int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ MessageBox(NULL,TEXT(Hello,Windows 98!),TEXT(HelloMsg),0); return 0;}
-
Windows.h.windows,.:WINDEF.H WINNT.H UniodeWINBASE.H WINUSER.H WINGDI.H
-
Cmain, windowsWinMainWinMainWinMainNULLWinMain.windows.WinMain.,.
-
MessageBoxMessageBoxWINUSER.HMB_.
-
,C.OBJ,.OBJ.LIB.EXE.
-
windows,.,,.
-
2.1 ,CreateWindows.CreateWindows,,.
-
.,..,.windows.
-
windows:,windows.,.,.Windows.
-
?windows., windows.,.,windows,windows,.windows.,,windows.
-
.,,.windows,,windows.,..,.,windows.windows.
-
,.,,,windows..Windows,windows,.,,..,.
-
HELLOWIN,.windows.VC++6.0
-
,hellowin.cWndProc,,WinMainWndProc,.
-
WindowsLoadIconLoadCursorGetStockObjectRegisterClassMessageBoxCreateWindowShowWindowUpdateWindowGetMessage
TranslateMessageDispatchMessagePlaySoundBeginPaintGetClientRectDrawTextEndPaintPostQuitMessageDefWindowProc
-
..windows,,, windows.CS CW DT IDI IDIDC IDMB SND WM WS
-
MSG WNDCLASS PAINTSTRUCT RECT
-
(32),.windowsCMS-DOS.windows.windows,. HINSTANCE () HWND HDC
-
windows.,.,,..
-
c charWCHARTCHAR by BYTE n short i int x,y intxy cx,cy intxy b,f BOOL(int);flag w WORDshort l LONG dw DWORD fn s string() sz 0 h p
-
,RegisterClass.,WNDCLASS.WNDCLASS....,.
-
,.CreateWindow,.windows,.,.RegisterClass,CreateWindow.
-
CreateWindow,window.,windows,CreateWindow,windows.
-
Windowswindows., windows,..
-
.,.windows,RegisterClass.CreateWindow.,.,windows.
-
,windowsswitchcase,.,0.DefWindowProcwindows.DefWindowProc.DefWindowProc,.
-
WM_PAINTwindows.,,.
-
2.2 windowsC,main,WinMain..Windows.,windows,.
-
,Windows.windows.windows,.windowsWM,WINUSER.H.
-
,,.,(),.GetMessageWindowsDispatchMessage
-
VC++:P47()
-
VC++WindowsAFXAppWizard
-
windows,windows
-
:MFC AppWizard(exe),,.exe.
-
AppWizard,example2ResourceView.,AppWizard,.
-
,MFC,. Example2CEdit,,CEdit.,..:m_Edit11CString,CEdit,CEdit.
-
,,want return,,,,,,.
-
Show1,,,,.m_Edit1.SetSel(0,-1);m_Edit1.ReplaceSel("Welcome to you! This is a EditBox.");
-
Clear1m_Edit1.SetSel(0,-1);m_Edit1.ReplaceSel("");Show2Clear2
-
IDC_COPY_BUTTONIDC_COPY_BUTTON->,.CEdit.m_Edit1.SetSel(0,-1);m_Edit1.Copy();m_Edit2.SetSel(0,-1);m_Edit2.ReplaceSel("");m_Edit2.Paste();:,.Copy()m_Edit1,m_Edit1,Paste()m_Edit2,m_Edit2.
-
UndoUndoCEdit,OK
-
,windows.
-
1
-
2 :MFC AppWizard(exe)
-
3 .,,,..
-
4 m_Edit1m_Scrollbar
-
,,,020.,10.,,.OnInitDialog().
-
m_Scrollbar.SetScrollRange(0,20);m_Scrollbar.SetScrollPos(10);char sPos[10];itoa(m_Scrollbar.GetScrollPos(),sPos,10);m_Edit1.SetSel(0,-1);m_Edit1.ReplaceSel(sPos);UpdateData(FALSE); itoa()
-
Exit OnOK(),.
-
Object IDsIDC_SCROLLBAR,Message.,.ClassWizard,Object IDsCExam3Dlg,MessagesWM_HSCROLL,,Member functionsOnHScroll(),,.,CExam3Dlg,,?
-
()void CExam3Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) ,,,...
-
(),,WM_SCROLL,OnHScroll().,,?,OnHScroll().
-
(),nSBCodeSB_THUMBTRACK,nSBCodeSB_LINEDOWNSB_LINEUP.SB_PAGEDOWN,SB_PAGEUP,.
-
Leftm_Scrollbar.SetScrollPos(0);m_Edit1.SetSel(0,-1);m_Edit1.ReplaceSel("0");Rightm_Scrollbar.SetScrollPos(20);m_Edit1.SetSel(0,-1);m_Edit1.ReplaceSel(20");
-
Resetm_Scrollbar.SetScrollPos(10);m_Edit1.SetSel(0,-1);m_Edit1.ReplaceSel(10");
-
,,.
-
1
-
2 :MFC AppWizard(exe)
-
3 ,,,
-
4 IDC_DATE_CHECKm_DateCheckIDC_TIME_CHECKm_TimeCheckIDC_DATE_EDITm_DateEditIDC_TIME_EDITm_TimeEdit
-
ExitOnOK();
-
,IDC_DATE_CHECKUpdateData(TRUE);if(m_DateCheck==TRUE){CTime tNow;tNow=CTime::GetCurrentTime();CString sNow=tNow.Format("%Y.%m.%d");m_DateEdit.SetSel(0,-1);m_DateEdit.ReplaceSel(sNow);}else{m_DateEdit.SetSel(0,-1);m_DateEdit.ReplaceSel("");}UpdateData(FALSE);
-
()UpdateData(TRUE),,.,.if.UpdateData(FALSE).,,CEdit,CString,.
-
,IDC_TIME_CHECKUpdateData(TRUE);if(m_TimeCheck==TRUE){CTime tNow;tNow=CTime::GetCurrentTime();CString sNow=tNow.Format("%I.%M.%S");m_TimeEdit.SetSel(0,-1);m_TimeEdit.ReplaceSel(sNow);}else{m_TimeEdit.SetSel(0,-1);m_TimeEdit.ReplaceSel("");}UpdateData(FALSE);
-
EnableDisableGetDlgItem(IDC_DATE_CHECK)->EnableWindow(TRUE);GetDlgItem(IDC_TIME_CHECK)->EnableWindow(TRUE);m_DateEdit.EnableWindow(TRUE);m_TimeEdit.EnableWindow(TRUE);,.GetDlgItem()CWnd,CDialogCWnd,CExam4DlgCDialog,CExam4DlgCWnd,CWnd.,
-
(EnableDisable)?,CEdit,.BOOL,CButton,.
-
(EnableDisable)DisableGetDlgItem(IDC_DATE_CHECK)->EnableWindow(FALSE);GetDlgItem(IDC_TIME_CHECK)->EnableWindow(FALSE);m_DateEdit.EnableWindow(FALSE);m_TimeEdit.EnableWindow(FALSE);
-
ShowHideGetDlgItem(IDC_DATE_CHECK)->ShowWindow(SW_SHOW);GetDlgItem(IDC_TIME_CHECK)->ShowWindow(SW_SHOW);m_DateEdit.ShowWindow(SW_SHOW);m_TimeEdit.ShowWindow(SW_SHOW);,.
-
(ShowHide)ShowHideGetDlgItem(IDC_DATE_CHECK)->ShowWindow(SW_HIDE);GetDlgItem(IDC_TIME_CHECK)->ShowWindow(SW_HIDE);m_DateEdit.ShowWindow(SW_HIDE);m_TimeEdit.ShowWindow(SW_HIDE);ShowWindow()CWnd,,SW_SHOW,SW_HIDE.
-
:
-
,windows.,,,,.
-
1
-
2 :MFC AppWizard(exe)
-
3 ID,ID.,ID.,.
-
.,Group,sexMaleGroup,AgeOldGroup.,,.,ID,,.
-
4 IDC_MALE_RADIOm_MaleRadio,Control,CButton.IDC_OLD_RADIOm_OldRadio,Control,CButton.m_Edit,Control,CEdit.:,.
-
OnInitDialog(),CheckRadioButton(IDC_MALE_RADIO,IDC_FEMALE_RADIO,IDC_MALE_RADIO);CheckRadioButton(IDC_OLD_RADIO,IDC_CHILD_RADIO,IDC_YONG_RADIO);UpdateData(FALSE);CheckRadioButton()ID,ID,ID.
-
ExitOnOK();
-
(Show)char sEdit[30];int iMaleRadio;int iOldRadio;iMaleRadio=GetCheckedRadioButton(IDC_MALE_RADIO,IDC_FEMALE_RADIO);if(iMaleRadio==IDC_MALE_RADIO)strcpy(sEdit,"He is a ");if(iMaleRadio==IDC_FEMALE_RADIO)strcpy(sEdit,"She is a ");
iOldRadio=GetCheckedRadioButton(IDC_OLD_RADIO,IDC_CHILD_RADIO);if(iOldRadio==IDC_OLD_RADIO)strcat(sEdit,"old.");if(iOldRadio==IDC_YONG_RADIO)strcat(sEdit,"yong.");if(iOldRadio==IDC_CHILD_RADIO)strcat(sEdit,"child.");m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sEdit);
-
,,.,,,,,.
-
1
-
.,,Age,,,,,.
-
2 :MFC AppWizard(exe)
-
3 :,,,.:maleGroup.,,.
-
4 IDC_MALE_RADIOm_MaleRadio.Value,int.:,m_MaleRadioCButton,int,,.IDC_AGE_COMBOBOXm_AgeCombo.Control,CComboBox.:,CString,,CEdit.
-
m_MaleRadio=0;m_AgeCombo.AddString("old.");m_AgeCombo.AddString("young.");m_AgeCombo.AddString("child.");m_AgeCombo.SelectString(-1,"young");UpdateData(FALSE);
-
ExitOnOK();
-
ShowUpdateData(TRUE);char sMaleEdit[30];char sAgeEdit[15];int iMaleRadio;iMaleRadio=GetCheckedRadioButton(IDC_MALE_RADIO,IDC_FEMALE_RADIO);if(iMaleRadio==IDC_MALE_RADIO)strcpy(sMaleEdit,"He is a ");if(iMaleRadio==IDC_FEMALE_RADIO)strcpy(sMaleEdit,"She is a ");m_AgeCombo.GetWindowText(sAgeEdit,15);strcat(sMaleEdit," ");strcat(sMaleEdit,sAgeEdit);m_Edit=_T(sMaleEdit);UpdateData(FALSE);
-
,sAgeEdit.GetWindowText(),,,.
-
.,VC++AppWizard.,,.
-
1
-
2 :MFC AppWizard(exe)
-
3 :Voice,Show,Exit
-
AppWizard,.InsertResource.MenuNew
-
,,.,,CExam7Dlg.,,ClassWizard.
-
,,..,,Propertis.
-
4 FileExitOnOK();
- FileVoiceMessageBeep((WORD)-1);DWORD iTime=GetCurrentTime();while(GetCurrentTime()
-
FileShowMessageBox("This is a sample of adding a menu.");
-
HelpAboutMessageBox("This is a sample. Version 12.0");
-
,VoiceVoice,OnVoiceButton()OnVoiceMenu(),CExam7Dlg,OnVoiceButton()OnVoiceMenu().
-
Windows,,.,,.,..
-
1
-
2 :MFC AppWizard(exe)
-
3 ,,AppWizard..
-
AppWizard,,.InsertResource,:,
-
,,.:CMyDlg1
-
IDD_DIALOG1IDD_DIALOG1,,ClassWizard.IDC_LISTm_List,Control,CListBox
-
4 Exit OnOK();
-
CMyDlg1IDD_MYDLG1CMyDlg1,,,.,,CExam8Dlg.,Exam8.h,Exam8Dlg.h
-
CMyDlg1()// Constructionpublic:CExam8Dlg(CWnd* pParent = NULL);// standard constructorCMyDlg1 m_MyDlg1;,Exam8Dlg.hCMyDlg1MyDlg1.h#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000
#include "MyDlg1.h"
-
CMyDlg1()CMyDlg1m_MyDlg1,CMyDlg1IDD_DIALOG1,m_MyDlg1IDD_MyDlg1,m_MyDlg1,IDD_MyDlg1.
-
IDD_MYDLG1IDD_MYDLG1,,.,.CDialogOnInitDialog(),,.IDD_MYDLG1.
-
IDD_MYDLG1()BOOL CMyDlg1::OnInitDialog() {CDialog::OnInitDialog();// TODO: Add extra initialization herem_List.AddString("This is a book.");m_List.AddString("This is a desk.");m_List.AddString("This is a computer.");m_List.AddString("This is a pen.");
return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE}
-
OKvoid CMyDlg1::OnOkButton() {// TODO: Add your control notification handler code herem_List.GetText(m_List.GetCurSel(),sList);OnOK();}
-
OK(),sList.,sList.OnOKButton(),,,,CMyDlg1,.MyDlg1.hCMyDlg1.class CMyDlg1 : public CDialog{// Constructionpublic:CMyDlg1(CWnd* pParent = NULL); // standard constructorCString sList;// Dialog Data};
-
Cancelvoid CMyDlg1::OnCancelButton() {// TODO: Add your control notification handler code hereOnCancel();}
-
Selectvoid CExam8Dlg::OnSelectButton() {// TODO: Add your control notification handler code herem_MyDlg1.DoModal();}m_MyDlg,,,.
-
Displayvoid CExam8Dlg::OnDisplayButton() {// TODO: Add your control notification handler code hereMessageBox(m_MyDlg1.sList);}
-
11 Windows,,.,,.,,.,,.
-
1
-
2 ,Single document..
-
3 .,,,.
-
AppWizardEditv, Show.Menu,Delete,Help.. ID_SHOW_MESSAGE1,2,3.
-
ResourceViewToolbar,IDR_MAINFRAME..,4.IDID_SHOW_MESSAGE1,2,3,.,.
-
ResourceViewMenu,IDD_MAINFRIME..ShowMessage1.Message1.Prompt.,,.,,.
-
\nMessage1,2,3
-
4 Message1,2,3ViewAppWizardClass nameCExam9ViewObject IDsID_SHOW_MESSAGE1MessageBox(This is a Message1,2,3 test.);
-
5
-
/(SDI)(MDI).,,MFC AppWizard.,.
-
1 /.,.,.,,.word
-
2 ,both container and server,,,CRichEditView,,.
-
3
-
4
-
,VC++ 6.0,.
-
1 ,.C++,,.Dynamic Link Library,DLL,.,,.
-
,,,.,,,.,.
-
,.DLL:Windows/SYSTEM
-
2 Win32MFCMFC
-
3 .cppDLL..defDLLDLLWindows,,DLL,DLL.
-
.cppMessage():int Message(void){MessageBox(NULL,"This is the example of testing DLL.",NULL,MB_ICONEXCLAMATION);return 1;},:int Message(void);
-
.defdefDLL,defcpp,;,//Build.dll.
-
4
-
5 MFC App (exe)
-
6
-
7 HINSTANCE handleDLL=NULL;typedef int(*MESSAGE)(void);MESSAGE Message;,NULL,.MESSAGE,,,MESSAGE,,,.
-
Load.dllvoid CMainFrame::OnDllLoad() {if(handlerDLL!=NULL){MessageBox("The OneDLL has been loaded.");return;}handlerDLL=LoadLibrary("OneDLL.DLL");if(handlerDLL==NULL){MessageBox("Cannot Load the OneDLL.DLL");}Message=(MESSAGE)GetProcAddress(handlerDLL,"Message");}
-
Test.dllvoid CTestDLLView::OnDllTest() {// TODO: Add your command handler code hereif(handlerDLL==NULL){MessageBox("Please Load the OneDLL.DLL first.");return;}Message();}
-
8 ,:Windows/SYSTEM
-
1
-
(GDI).MFCGDI,.CGdiObject.
-
(Device Context,DC),.windows,GDI(DC)....
-
GDICPen.: int nPenStyle()PS_SOLIDPS_DASHPS_DOTPS_DASHDOTPS_DASHDOTDOTPS_NULL
-
GDICBrush int nIndex()HS_BDIAGONALHS_CROSSHS_DIAGCROSSHS_FDIAGONALHS_HORIZONTALHS_VERTICAL
-
2 SDIMFC AppWizard(exe)
-
3
-
(T)
-
(P)
-
(W)
-
(C)
-
(B)
-
4 ClassView,Classes,,
-
int m_yy;int m_bx;int m_ys;int m_xh;bool m_yyzx;bool m_yyhx;bool m_yyjc;bool m_yysz;bool m_yyxx;bool m_yyxs;bool m_sx;bool m_kx;bool m_yellow;bool m_blue;bool m_red;bool m_x5;bool m_x4;bool m_x3;bool m_x2;bool m_x1;bool m_dashdotdot;bool m_dashdot;bool m_dot;bool m_dash;bool m_solid;bool m_ellipse;bool m_rectangle;bool m_line;CPoint m_end;CPoint m_start;
-
CPaintView::CPaintView(){// TODO: add construction code herem_line=true;m_rectangle=false;m_ellipse=false;m_solid=true;m_dash=false;m_dot=false;m_dashdot=false;m_dashdotdot=false;m_x1=true;m_x2=false;m_x3=false;m_x4=false;m_x5=false;m_red=true;m_blue=false;m_yellow=false;m_kx=true;m_sx=false;m_yyxs=false;m_yyxx=false;m_yysz=false;m_yyjc=false;m_yyhx=false;m_yyzx=false;m_xh=1;m_bx=PS_SOLID;m_ys=RGB(0,0,0);m_yy=NULL;
}
-
ON_COMMANDON_UPDATE_COMMAND_UI
-
(COMMAND)void CPaintView::OnLine() {// TODO: Add your command handler code herem_line=true;m_rectangle=false;m_ellipse=false;}
void CPaintView::OnRectangle() {// TODO: Add your command handler code herem_line=false;m_rectangle=true;m_ellipse=false;}
void CPaintView::OnEllipse() {// TODO: Add your command handler code herem_line=false;m_rectangle=false;m_ellipse=true;}
-
(UPDATE_COMMAND_UI)void CPaintView::OnUpdateLine(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_line);}
void CPaintView::OnUpdateRectangle(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_rectangle);}
void CPaintView::OnUpdateEllipse(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_ellipse);}
-
(COMMAND)void CPaintView::OnPsSolid() {// TODO: Add your command handler code herem_solid=true;m_dash=false;m_dot=false;m_dashdot=false;m_dashdotdot=false;m_bx=PS_SOLID;}
void CPaintView::OnPsDash() {// TODO: Add your command handler code herem_solid=false;m_dash=true;m_dot=false;m_dashdot=false;m_dashdotdot=false;m_bx=PS_DASH;}
-
void CPaintView::OnPsDot() {// TODO: Add your command handler code herem_solid=false;m_dash=false;m_dot=true;m_dashdot=false;m_dashdotdot=false;m_bx=PS_DOT;}
void CPaintView::OnPsDashdot() {// TODO: Add your command handler code herem_solid=false;m_dash=false;m_dot=false;m_dashdot=true;m_dashdotdot=false;m_bx=PS_DASHDOT;}
-
void CPaintView::OnPsDashdotdot() {// TODO: Add your command handler code herem_solid=false;m_dash=false;m_dot=false;m_dashdot=false;m_dashdotdot=true;m_bx=PS_DASHDOTDOT;}
-
(UPDATE_COMMAND_UI)void CPaintView::OnUpdatePsSolid(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_solid);}
void CPaintView::OnUpdatePsDash(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_dash);}
void CPaintView::OnUpdatePsDot(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_dot);}
void CPaintView::OnUpdatePsDashdot(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_dashdot);}
void CPaintView::OnUpdatePsDashdotdot(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_dashdotdot);}
-
(COMMAND)void CPaintView::OnX1() {// TODO: Add your command handler code herem_x1=true;m_x2=false;m_x3=false;m_x4=false;m_x5=false;m_xh=1;}
void CPaintView::OnX2() {// TODO: Add your command handler code herem_x1=false;m_x2=true;m_x3=false;m_x4=false;m_x5=false;m_xh=2;}
-
void CPaintView::OnX3() {// TODO: Add your command handler code herem_x1=false;m_x2=false;m_x3=true;m_x4=false;m_x5=false;m_xh=3;}
void CPaintView::OnX4() {// TODO: Add your command handler code herem_x1=false;m_x2=false;m_x3=false;m_x4=true;m_x5=false;m_xh=4;}
-
void CPaintView::OnX5() {// TODO: Add your command handler code herem_x1=false;m_x2=false;m_x3=false;m_x4=false;m_x5=true;m_xh=5;}
-
(UPDATE_COMMAND_UI)void CPaintView::OnUpdateX1(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_x1);}
void CPaintView::OnUpdateX2(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_x2);}
void CPaintView::OnUpdateX3(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_x3);}
void CPaintView::OnUpdateX4(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_x4);}
void CPaintView::OnUpdateX5(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_x5);}
-
(COMMAND)void CPaintView::OnRed() {// TODO: Add your command handler code herem_red=true;m_blue=false;m_yellow=false;m_ys=RGB(255,0,0);}
void CPaintView::OnBlue() {// TODO: Add your command handler code herem_red=false;m_blue=true;m_yellow=false;m_ys=RGB(0,0,255);}
void CPaintView::OnYellow() {// TODO: Add your command handler code herem_red=false;m_blue=false;m_yellow=true;m_ys=RGB(0,255,0);}
-
(UPDATE_COMMAND_UI)void CPaintView::OnUpdateBlue(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_blue);}
void CPaintView::OnUpdateRed(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_red);}
void CPaintView::OnUpdateYellow(CCmdUI* pCmdUI) {// TODO: Add your command update UI handler code herepCmdUI->SetCheck(m_yellow);}
-
(COMMAND)void CPaintView::OnBsKx() {// TODO: Add your command handler code herem_kx=true;m_sx=false;m_yyxs=false;m_yyxx=false;m_yysz=false;m_yyjc=false;m_yyhx=false;m_yyzx=false;m_yy=NULL;}
void CPaintView::OnBsSx() {// TODO: Add your command handler code herem_kx=false;m_sx=true;m_yyxs=false;m_yyxx=false;m_yysz=false;m_yyjc=false;m_yyhx=false;m_yyzx=false;m_yy=1;}
-
void CPaintView::OnBsHx() {// TODO: Add your command handler code herem_kx=false;m_sx=false;m_yyxs=false;m_yyxx=false;m_yysz=false;m_yyjc=false;m_yyhx=true;m_yyzx=false;m_yy=HS_HORIZONTAL;}
void CPaintView::OnBsJc() {// TODO: Add your command handler code herem_kx=false;m_sx=false;m_yyxs=false;m_yyxx=false;m_yysz=false;m_yyjc=true;m_yyhx=false;m_yyzx=false;m_yy=HS_DIAGCROSS;}
-
void CPaintView::OnBsSz() {// TODO: Add your command handler code herem_kx=false;m_sx=false;m_yyxs=false;m_yyxx=false;m_yysz=true;m_yyjc=false;m_yyhx=false;m_yyzx=false;m_yy=HS_CROSS;}
void CPaintView::OnBsXs() {// TODO: Add your command handler code herem_kx=false;m_sx=false;m_yyxs=true;m_yyxx=false;m_yysz=false;m_yyjc=false;m_yyhx=false;m_yyzx=false;m_yy=HS_BDIAGONAL;}
-
void CPaintView::OnBsXx() {// TODO: Add your command handler code herem_kx=false;m_sx=false;m_yyxs=false;m_yyxx=true;m_yysz=false;m_yyjc=false;m_yyhx=false;m_yyzx=false;m_yy=HS_FDIAGONAL;}
void CPaintView::OnBsZx() {// TODO: Add your command handler code herem_kx=false;m_sx=false;m_yyxs=false;m_yyxx=false;m_yysz=false;m_yyjc=false;m_yyhx=false;m_yyzx=true;m_yy=HS_VERTICAL;}
-
(UPDATE_COMMAND_UI)void CPaintView::OnUpdateBsKx(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_kx);}
void CPaintView::OnUpdateBsSx(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_sx);}
void CPaintView::OnUpdateBsHx(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_yyhx);}
void CPaintView::OnUpdateBsJc(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_yyjc);}
void CPaintView::OnUpdateBsSz(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_yysz);}
void CPaintView::OnUpdateBsXs(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_yyxs);}
void CPaintView::OnUpdateBsXx(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_yyxx);}
void CPaintView::OnUpdateBsZx(CCmdUI* pCmdUI) {pCmdUI->SetCheck(m_yyzx);}
-
: WM_LBUTTONDOWN(), WM_LBUTTONUP()
-
void CPaintView::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultm_start=point;//m_end=point;//SetCapture();//RECT rect;GetClientRect(&rect);//ClientToScreen(&rect);//ClipCursor(&rect);//CView::OnLButtonDown(nFlags, point);}
-
void CPaintView::OnLButtonUp(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultm_end=point;//,ReleaseCapture();//ClipCursor(NULL);//CClientDC pDC(this);//pDC.SelectObject(CreatePen(m_bx,m_xh,m_ys));if(m_yy){if(m_sx){pDC.SelectObject(CreateSolidBrush(m_ys));}else{pDC.SelectObject(CreateHatchBrush(m_yy,m_ys));}}
-
()if(m_line)//{pDC.MoveTo(m_start);//pDC.LineTo(m_end);//}if(m_rectangle)//{pDC.Rectangle(m_start.x,m_start.y,m_end.x,m_end.y);}if(m_ellipse){pDC.Ellipse(m_start.x,m_start.y,m_end.x,m_end.y);}CView::OnLButtonUp(nFlags, point);}
-
5
-
..,..windows(GDI),,.windows.
-
3.1 windows,,.,,.windows,, windows.Windows.,.windowsWM_PAINT,.