第十一章 Windows 编程
description
Transcript of 第十一章 Windows 编程
-
Windows Windows MFC Windows
-
WindowsAPIWindows
-
Windows
-
Windows
-
Windows
-
Windows1Windows2Windows34
-
typedef struct tagMSG { // msg HWND hwnd; // UINT message; // WPARAM wParam; // LPARAM lParam; // DWORD time; // POINT pt; // } MSG; Windows windowsMSG
-
Windows WM_CREATEWM_DESTROYWM_CLOSE,WM_MOVE , WM_SIZE , WM_PAINT WM_CHARWM_KEYDOWNWM_KEYUP WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_LBUTTONUP, WM_LBUTTONDBCLICK,WM_RBUTTONDOWN,WM_RBUTTONUP,WM_RBUTTONDBCLICK WM_SETFOCUSWM_KILLFOCUS WM_TIMER
-
Windows (WNDPROC)? MS
-
Windows4
-
VCwindows Windows API MFC
-
int WINAPI WinMain() {//WNDCLASS wndcls;wndcls.style=CS_HREDRAW | CS_VREDRAW;wndcls.lpfnWndProc=WndProc; wndcls.lpszClassName="111"; RegisterClass(&wndcls); // hwnd=CreateWindow("111", ); // ShowWindow(hwnd,SW_SHOWNORMAL);//UpdateWindow(hwnd);Windows API
-
MSG msg; while(GetMessage(&msg,NULL,0,0)){ TranslateMessage(&msg);DispatchMessage(&msg); }return msg.wParam; }Windows API
-
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){switch(uMsg){case WM_CHAR: case WM_LBUTTONDOWN: case WM_DESTROY:PostQuitMessage(0); break;default:return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0; }Windows API
-
MFCMicrosoft Fundation ClassC++ MFCWindows API MFCMFC
-
Windows4. 2. 5. 1. 3. 6. 7. 8.
-
Windows(Style) (*)
-
MyEditMyEdit
-
MyEdit Test 1MyEditThis is a test
-
MyEdit Clear 1MyEdit Test 2 MyEditYou clicked the Test 2 button Clear 2 MyEdit
-
MyEdit Visual C++ FileNew NewProject MFC AppWizard[exe] MyEdit OK
-
MyEdit Step 1 Step 1Next Step 2 About BoxUse 3D Controls Step 2Next
-
MyEdit Step 3 Step 3 NextMFC StandardMFC
-
Step 4FinishVisual C++New Project InformatinoMyEdit Visual C++ OK
-
MyEdit MyEditAppWizardAppWizardIDD_MYEDIT_DIALOGThe edit box toolThe push button tool
-
MyEdit
IDCaptionIDD_MYEDIT_DIALOGThis is MyEditIDC_EDIT1IDC_TEST1_BUTTONTest &1IDC_CLEAR1_BUTTON&Clear 1IDC_EDIT2IDC_TEST2_BUTTONTest &2IDC_CLEAR2_BUTTONCl&ear 2
-
MyEdit
IDCaptionIDC_EXIT_BUTTONE&xitIDC_COPY_BUTTONC&opyIDC_PASTE_BUTTONPa&ste
-
MyEdit
-
MyEdit m_Edit1IDC_EDIT1 ViewClass WizardClass Wizard Member Variables Class NameCMyEditDlg IDC_EDIT1 Add Variable Add Member Variablem_Edit1Value,Cstring,OK
-
Test1Clear1BN_CLIKED Test 1 ViewClass WizardClass Wizard Message Maps Class NameCMyEditDlg IDC_TEST1_BUTTONBN_CLIKED Add Function Visual C++OnTest1Button() Edit Code CMyEditDlg->IDC_TEST1_BUTTON ->BN_CLIKED
-
Test1Clear1BN_CLIKED OnTest1Buttonvoid CMyEditDlg::OnTest1Button() {///////////////////////////My Code Starts Here/////////////////////////m_Edit1="This is a test.";UpdateData(FALSE); //////////////////////// //My Code Ends Here /////////////////////////}UpdateDataBOOLUpdateData(FALSE)UpdateData(TRUE)
-
Test1Clear1BN_CLIKED OnClear1Buttonvoid CMyEditDlg::OnClear1Button() {///////////////////////////My Code Starts Here/////////////////////////m_Edit1="";UpdateData(FALSE); //////////////////////// //My Code Ends Here /////////////////////////} Clear 1
-
Add Member Variablem_Edit2ControlCEdit ViewClass WizardClass Wizard Member Variables Class NameCMyEditDlg IDC_EDIT2 Add Variable
-
Test2 ViewClassWizard CMyEditDlg->IDC_TEST2_BUTTON->BN_CLICIKED Add Funtion Visual C++OnTest2Button() Edit Code OnTest2Button() Test 2
-
Test2void CMyEditDlg::OnTest2Button() {////////////////////////////My Code Starts Here/////////////////////////m_Edit2.SetSel(0,-1);m_Edit2.ReplaceSel("You clicked the test 2 button."); //////////////////////////My Code Ends Here////////////////////////}
-
Clear 2Clear2 OnClear2Button()void CMyEditDlg::OnClear2Button() {////////////////////////////My Code Starts Here/////////////////////////m_Edit2.SetSel(0,-1);m_Edit2.ReplaceSel(" "); //////////////////////////My Code Ends Here////////////////////////}
-
Copy ViewClassWizard CMyEditDlg->IDC_COPY_BUTTON->BN_CLICIKED Add Funtion Visual C++OnCopyButton() Edit Code OnCopyButton()
-
Copyvoid CMyEditDlg::OnCopyButton() {////////////////////////////My Code Starts Here/////////////////////////m_Edit2.SetSel(0,-1);m_Edit2.Copy(); //////////////////////////My Code Ends Here////////////////////////}
-
Paste ViewClassWizard Add Funtion Visual C++OnPasteButton() Edit Code OnPasteButton() CMyEditDlg->IDC_PASTE_BUTTON->BN_CLICIKED
-
void CMyEditDlg::OnPasteButton() {////////////////////////////My Code Starts Here/////////////////////////m_Edit2.SetSel(0,-1);m_Edit2.Paste(); //////////////////////////My Code Ends Here////////////////////////}Paste
-
IDC_EDIT2 IDC_EDIT2 ViewProperties IDC_EDIT2 Style MultilineHorizon Scroll,Auto Hscroll,Vertical Scroll,Want Return Border
-
252
-
CWndCWndCEditCEdit:Copy(),Cut(),Paste(),Undo(), SetSel:void SetSel( int nStartChar, int nEndChar)ReplaceSelvoid ReplaceSel( LPCTSTR lpszNewText)
-
CDialogCDialogCMyEditDlgCObjectCCmdTargetCWndCDialogCWnd:MessagBox:int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK ); UpdateData: BOOL UpdateData(BOOL bSaveAndValidate=TRUE); CDialog:OnOK: void OnOK( ); CMyEditDlg
-
AppWizardWindows Visual C++Class Wizard Class Wizard
-
VC++
-
MyMenu MyMenu
-
MyMenu Visual C++ FileNew NewProject MFC AppWizard[exe] MyMenu OK
-
Step 1 Step 1Next Step 2 About BoxUse 3D Controls Step 2NextMyMenu
-
Step 3 Step 3 NextMFC StandardMFCMyMenu
-
Step 4Finish Visual C++New Project Informatino Visual C++ OKMyMenu
-
MyMenu
IDCaptionIDD_MYMENU_DIALOGMyMenu IDC_BEEP1_BUTTONBeep &1 IDC_BEEP2_BUTTONBeep &2 IDC_SHOW_BUTTON&Show IDC_EXIT_BUTTONE&xit
-
MyMenuMyMenu
-
AppWizard InsertResourceInsert Resource MenuNew
-
ViewWorkspaceMyMenu Resource Veiw Menu+IDIDR_MENU1 ID &File
IDCaption&FileID_FILE_SHOW&ShowID_FILE_EXIT&Exit BeepID_BEEP_BEEP1Be&ep1ID_BEEP_BEEP2Bee&p2HelpID_HELP_ ABOUT&About
-
IDD_MYMENU_DEALOG PropertiesDialog Properties MenuIDR_MENU1
-
IDR_MENU1CMyMenuDlg CLi2DlgIDD_MYMENU_DIALOGIDR_MENU1 IDR_MENU1CMyMenuDlg ClassWizard OKSelect ClassCMyMenuDlg
-
FileExit FileExitMyMenuExitCOMMANDCOMMOND ViewClass WizardClass Wizard Message Maps CMyMenuDlg->IDC_FILE_EXIT ->COMMAND
-
FileShowvoid CMyMenuDlg::OnFileShow() {// //////////////////////////////////MessageBox("");//////////////////////////////////}
-
Add Funtion Edit Code Visual C++OnFileExit()void CMyMenuDlg::OnFileExit() {// //////////////////////////////////OnOK( );//////////////////////////////////}
-
BeepBeep1void CMyMenuDlg::OnBeepBeep1() {// //////////////////////////////////MessageBeep(0);//////////////////////////////////}
- BeepBeep2void CMyMenuDlg::OnBeepBeep2() {// //////////////////////////////////MessageBeep(0);DWORD star=GetCurrentTime( );while(GetCurrentTime( )
-
HelpAboutvoid CMyMenuDlg::OnHelpAbout() {// //////////////////////////////////CAboutDlg dlgAbout; dlgAbout.DoModal( );//////////////////////////////////}
-
Beep1void CMyMenuDlg::OnBeep1Button( ) {// //////////////////////////////////OnBeepBeep1( );//////////////////////////////////}
-
Beep2void CMyMenuDlg::OnBeep2Button( ) {// //////////////////////////////////OnBeepBeep2( );//////////////////////////////////}
-
Showvoid CMyMenuDlg::OnShowButton( ) {// //////////////////////////////////OnFileShow( );//////////////////////////////////}
-
Exitvoid CMyMenuDlg::OnExitButton( ) {// //////////////////////////////////OnFileExit( );//////////////////////////////////}
-
MessageBeep(0);GetCurrentTime();
-
Windows
-
MyCheckBox
-
My Check BoxMy Check Box is NOT checkedMy Check Box is checkedMy Check Box
-
MyCeckBox Visual C++ FileNew NewProject MFC AppWizard[exe] MyCheckBox OK
-
Step 1 Step 1Next Step 2 About BoxUse 3D Controls MyCheckBox Step 2Next
-
Step 3 Step 3 NextMFC StandardMFCMyCheckBox
-
Step 4Finish Visual C++New Project Informatino Visual C++ OKMyCheckBox
-
MyCheckBox MyCheckBoxApp-Wizard AppWizard IDD_MYCHECKBOX_DIALOGThe check Box tool
-
IDCaptionIDD_MYCHECKBOX_DIALOGMyCheckBoxIDC_MY_CHECKBOXMy Check BoxIDC_MY_EDITBOX IDC_SHOW_BUTTON&Show IDC_HIDE_BUTTON&Hide IDC_ENABLE_BUTTON&Enable IDC_DISABLE_BUTTON&Disable IDC_EXIT_BUTTONE&xit
-
void CMyChekBoxDlg::OnMycheckBox() { // TODO: Add your control notification handler code here /////////// // UpdateData(TRUE); if(m_MyCheck==TRUE) m_MyEdit="My check box is checked."; else m_MyEdit="My check box is NOT checked."; UpdateData(FALSE); /////////// //}Click
-
MyCheckBox IDD_MYCHECK_DIALOGClassWizard
IDIDC_MY_CHECKm_MyCheckValueBOOLIDC_MY_EDITm_MyEditValueCString
-
MyCheckBoxMy Check BoxMyCheckBoxMy Check Box IDD_MYCHECKBOX_DIALOGWM_INITDIALOG ClassWizard ClassWizardMassage Maps
-
ClassWizardCMyCheckBoxDlg->CCheckBoxDlg->WM_INITDIALOG
-
Edit CodeBOOL CMyChekBoxDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}
// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);// Set big iconSetIcon(m_hIcon, FALSE);// Set small icon// TODO: Add extra initialization here///////////////m_MyCheck=TRUE;m_MyEdit="My Check Box is checked.";UpdateData(FALSE);////////////////return TRUE; // return TRUE unless you set the focus to a control}
-
Click ClassWizard ClassWizard ClassWizardMassage MapsCMyCheckBoxDlg->IDC_MY_CHECK->BN_CLICKED Add Function OnMyCheck() Edit Code
-
void CMyChekBoxDlg::OnMycheckBox( ) { // TODO: Add your control notification handler code here /////////// // UpdateData(TRUE); if(m_MyCheck==TRUE) m_MyEdit="My check box is checked."; else m_MyEdit="My check box is NOT checked."; UpdateData(FALSE); /////////// //}Click
-
void CMyChekBoxDlg::OnHideButton() { // TODO: Add your control notification handler code here /////////// // GetDlgItem(IDC_MY_CHECK) ->ShowWindow(SW_HIDE); /////////// //}HideShow GetDlgItem() GetDlgItem()IDIDC_MY_CHECK
-
ShowWindow()SW_HIDEShowWindow()SW_SHOWvoid CMyChekBoxDlg::OnShowButton() { // TODO: Add your control notification handler code here /////////// // GetDlgItem(IDC_MY_CHECK) ->ShowWindow(SW_SHOW); /////////// //}HideShow
-
DisableEnablevoid CMyChekBoxDlg::OnEnableButton() { // TODO: Add your control notification handler code here /////////// // GetDlgItem(IDC_MY_CHECK)->EnableWindow(TRUE); /////////// //}EnableWindow( )/
-
OnOKUpdateDataMessageBoxMessageBeepGetCurrentTimeGetDlgItem
-
HelpSearch Visual C++ GetDlgItem CWnd::GetDlgItem
void CMyChekBoxDlg::OnHideButton() { // TODO: Add your control notification handler code here /////////// // GetDlgItem(IDC_MY_CHECK) ->ShowWindow(SW_HIDE); /////////// //}
-
CDialog CDialogCWnd
-
CMyCheckBoxDlg CDialog
-
CMyCheckBoxDlgCDialogCDilalogCWndCMyCheckBoxDlgCWndGetDlgItem()ShowWindow()CWnd
-
Visual C++ GetDlgItem()ShowWindow()EnableWindow()
-
MyScroll010050
-
111010
-
MyScroll Visual C++ FileNew NewProject MFC AppWizard[exe] MyScroll OK
-
Step 1 Step 1Next Step 2 About Box Use 3D Controls Step 2NextMyScroll
-
Step 3 Step 3 NextMFC StandardMFCMyScroll
-
Step 4Finish Visual C++New Project Information Visual C++ OKMyScroll
-
MyScroll MyScrollAppWizardAppWizard IDD_MYSCROLL_DIALOGThe scroll bar tool
-
IDCaptionIDD_MYSCROLL_DIALOGMyScrollIDC_STATICSpeedIDC_MY_SCROLLIDC_MY_EDIT IDC_SHOW_BUTTON&Show IDC_HIDE_BUTTON&Hide IDC_ENABLE_BUTTON&Enable IDC_DISABLE_BUTTON&Disable IDC_EXIT_BUTTONE&xit
-
MyScroll
IDCaption IDC_MIN_BUTTON&Min IDC_MAX_BUTTONM&ax
-
MyScroll
-
MyScroll IDD_MYSCROLL_DIALOGClassWizard
IDIDC_MY_EDITm_MyEditControlCEditIDC_MY_SCROLLm_MyScrollControlCScrollBar
-
MyScroll500100 IDD_MYSCROLL_DIALOGWM_INITDIALOG ClassWizard ClassWizardMassage Maps 50
-
ClassWizardCMyScrollDlg->CMyScrollDlg->WM_INITDIALOG
-
BOOL CMyScorllDlg::OnInitDialog( ){ // TODO: Add extra initialization here m_MyScroll.SetScrollRange(0,100); m_MyScroll.SetScrollPos(50); char sPos[25]; itoa(m_MyScroll.GetScrollPos( ),sPos,10); m_MyEdit.SetSel(0,-1); m_MyEdit.ReplaceSel(sPos); }////////sPositoa(int,char[],int)2-36
-
WM_HSCROLL ClassWizard ClassWizardMassage Maps ClassWizardCMyScrollDlg->CMyScrollDlg->WM_HSCROLLOnHScroll Edit Code
-
if(nSBCode == SB_THUMBTRACK){ }else if(nSBCode == SB_LINEUP) { }else if(nSBCode == LINEDOWN) { }else if(nSBCode == PAGEUP) { }else if(nSBCode == PAGEDOWN) { }void CMyScorllDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
-
switch (nSBCode){ case SB_THUMBTRACK: break; case SB_LINEUP: break; case SB_LINEDOWN: break; case SB_PAGEUP: break; case SB_PAGEDOWN: break;}void CMyScorllDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)if(pScrollBar= =&m_MyScroll){}
-
void CMyScorllDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add extra initialization here char sPos[25]; { switch (nSBCode) { case SB_THUMBTRACK: m_MyScroll.SetScrollPos(nPos); itoa(m_MyScroll.GetScrollPos( ),sPos,10); m_MyEdit.SetSel(0,-1); m_MyEdit.ReplaceSel(sPos); break;if(pScrollBar= =&m_MyScroll)
- case SB_LINEUP: iCurrent=m_MyScroll.GetScrollPos( ); iCurrent=iCurrent-1; if(iCurrent
-
case SB_LINEDOWN: iCurrent=m_MyScroll.GetScrollPos( ); iCurrent=iCurrent+1; if(iCurrent>100) iCurrent=100; m_MyScroll.SetScrollPos(iCurrent); itoa(m_MyScroll.GetScrollPos( ),sPos,10); m_MyEdit.SetSel(0,-1); m_MyEdit.ReplaceSel(sPos); break;
- case SB_PAGEUP: iCurrent=m_MyScroll.GetScrollPos( ); iCurrent=iCurrent-10; if(iCurrent
-
case SB_PAGEDOWN: iCurrent=m_MyScroll.GetScrollPos( ); iCurrent=iCurrent+10; if(iCurrent>100) iCurrent=100; m_MyScroll.SetScrollPos(iCurrent); itoa(m_MyScroll.GetScrollPos( ),sPos,10); m_MyEdit.SetSel(0,-1); m_MyEdit.ReplaceSel(sPos); break;
-
MinMaxResetvoid CMyScorllDlg::OnMinButton( ) {// TODO: Add your control notification handler code herem_ MyScroll.SetScrollPos(0); m_MyEdit.SetSel(0,-1);m_MyEdit.ReplaceSel("0");}
-
DisableEnablevoid CMyScorllDlg::OnDisableButton( ) {m_MyScroll.EnableWindow(FALSE);}
void CMyScorllDlg::OnEnableButton( ) {m_MyScroll.EnableWindow(TRUE);}
-
HideShowvoid CMyScorllDlg::OnShowButton( ) {m_MyScroll.ShowWindow(SW_SHOW);}void CMyScorllDlg::OnHideButton( ) {m_MyScroll.ShowWindow(SW_HIDE);}
-
MyScroll DisableMinMaxReset OnDisableButton()MinMaxReset OnEnableButton()MinMaxReset OnShowButton()OnHideButton()MinMaxReset
-
Visual C++WM_HSCROLL
-
GetScrollPos SetScrollRangeSetScrollPos itoa
-
Windows
-
1MyList
-
MyList MyList
-
MyList Visual C++ FileNew NewProject MFC AppWizard[exe] MyList OK
-
Step 1 Step 1Next Step 2 About Box Use 3D Controls Step 2NextMyList
-
Step 3 Step 3 NextMFC StandardMFCMyList
-
Step 4Finish Visual C++New Project Information Visual C++ OKMyList
-
MyList MyListAppWizardAppWizardAppWizard IDD_MYLIST_DIALOGList box
-
MyList
IDCaptionIDD_MYLIST_DIALOGMyListIDC_MY_LIST IDC_EXIT_BUTTON&Exit
-
MyListMyList
-
m_MyListControlCListBox IDD_MYLIST_DIALOGWM_INITDIALOGWM_INITDALOG ClassWizard ClassWizardMassage Maps ClassWizardCMyListDlg->CMyListDlg->WM_INITDIALOG
-
Edit Code
-
OnInitDialog()BOOL CMyListDlg::OnInitDialog(){ // TODO: Add extra initialization here
//m_MyList.AddString("I'm the first string.");m_MyList.AddString("I'm the second string.");m_MyList.AddString("I'm the third string."); //return TRUE; // return TRUE unless you set the focus to a control}
-
IDIDC_SELECT_EDIT m_SelectEditIDC_SELECT_EDITConrtolCEditCEdit
IDIDC_SELECT_EDITm_SelectEditControlCEdit
-
IDC_MY_LIST LBN_DBLCLK LBN_DBLCLK ClassWizard ClassWizardMassage Maps ClassWizardCMyListDlg->IDC_MYLIST->LBN_DBLCLK
-
Edit Code OnDblclkMyList() void CMyListDlg::OnDblclkMyList() { // TODO: Add your control notification handler code here // char str[50]; m_MyList.GetText(m_MyList.GetCurSel(),str); m_SelectEdit.SetSel(0,-1); m_SelectEdit.ReplaceSel(str); //}
-
IDCaptionIDC_ADD_EDIT IDC_ADD_BUTTON
IDIDC_ADD_EDITm_AddEditControlCEdit
-
void CMyListDlg::OnAddButton() {// TODO: Add your control notification handler code here //char str[50];m_AddEdit.GetWindowText(str,50);m_MyList.AddString(str); //}
-
IDCaptionIDC_COUNT_EDIT IDC_COUNT_BUTTONm_MyList.GetCount( )
IDIDC_COUNT_EDITm_CountEditControlCEdit
-
m_MyList.GetCount()void CMyListDlg::OnGetcountButton() {// TODO: Add your control notification handler code here int n; n=m_MyList.GetCount(); char s_n[5]; itoa(n,s_n,10); char str[50]; strcpy(str, "Numer of items in the list box:"); strcat(str, s_n); m_CountEdit.SetSel(0, -1); m_CountEdit.ReplaceSel(str);}
-
2. GetText(int,char[]) 1. GetCurSel() 5. GetWindowText(char[],int) 4. AddString() 6. itoa(int,char[], ) 3. GetCount() 7. strcpy(char[], ) 8. strcat(char[],char[]) CListBox CEdit
-
2MyCombo MyCombo
-
MyComboMyCombo
IDCaptionIDC_MY_COMBOIDC_MY_EDIT IDC_TO_BUTTON IDC_EXIT_BUTTONE&xit
IDIDC_MY_COMBOm_MyComboControlCComboBoxIDC_MY_EDITm_MyEditControlCEdit
-
// TODO: Add extra initialization here //m_MyCombo.AddString("I'm string a.");m_MyCombo.AddString("I'm string b.");m_MyCombo.AddString("I'm string c.");m_MyCombo.AddString("I'm string d."); //
-
void CMyComboDlg::OnToEditButton() {// TODO: Add your control notification handler code here // char str[25]; m_MyCombo.GetWindowText(str,25); m_MyEdit.SetSel(0,-1); m_MyEdit.ReplaceSel(str); //}
-
GetWindowText GetWindowText(char,int) 12
-
Windows
-
MyRadio
-
Color MyRadioSpeed MyRadioReport Setting
-
MyRadio Visual C++ FileNew NewProject MFC AppWizard[exe] MyList OK
-
Step 1 Step 1Next Step 2 About Box Use 3D Controls Step 2NextMyRadio
-
Step 3 Step 3 NextMFC StandardMFCMyRadio
-
Step 4Finish Visual C++New Project Information Visual C++ OKMyRadio
-
MyRadio MyRadioAppWizardAppWizardAppWizard IDD_MYRADIO_DIALOG
-
MyRadio
IDCaptionIDD_MYRADIO_DIALOGMyRadioIDC_RED_RADIORedIDC_GREEN_RADIOGreenIDC_STATICColorIDC_20_RADIO20MPHIDC_55_RADIO55MPHIDC_70_RADIO70MPHIDC_STATICSpeedIDC_MY_EDITIDC_REPORT_BUTTONReport Setting
-
MyRadioMyRadio
-
Red Group Speed Group Group Resoures Symbols
-
MyRadio IDD_MYRADIO_DIALOGClassWizard
IDIDC_RED_RADIOm_RedRadioControlCButtonIDC_20_RADIOm_20RadioValueintIDC_MY_EDITm_MyEditControlCEdit
-
IDD_MYRADIO_DIALOGWM_INITDIALOG ClassWizard ClassWizardMassage Maps ClassWizardCMyRadioDlg->CMyRadioDlg->WN_INITDIALOG
-
// TODO: Add extra initialization here//Red55MPH// CheckRadioButton(IDC_RED_RADIO, IDC_GREEN_RADIO, IDC_GREEN_RADIO); m_SpeedRadio=2; UpdateData(FALSE);//CheckRadioButton(1, 2, 3GreenSpeed70MPH
-
void CMyRadioDlg::OnReportButton() { // TODO: Add your control notification handler code here // char str[50]; int n; n=GetCheckedRadioButton( IDC_RED_RADIO,IDC_GREEN_RADIO); if(n==0) strcpy(str, "Color: None"); else if(n==IDC_RED_RADIO) strcpy(str, "Color: Red"); else if(n==IDC_GREEN_RADIO) strcpy(str, "Color: Green");
-
UpdateData(TRUE); if(m_SpeedRadio==0)strcat(str," Speed: 20MPH");else if(m_SpeedRadio==1)strcat(str," Speed: 55MPH"); else if(m_SpeedRadio==2)strcat(str," Speed: 70MPH"); m_MyEdit.SetSel(0,-1); m_MyEdit.ReplaceSel(str);//}UpdateData(FALSE)UpdateData(TRUE)
-
Cwnd CheckRadioButton(1, 2, 3); 1ID 2ID 3ID GetCheckedRadioButton(1, 2); ID 1ID 2ID
-
CAboutDlg dlgAbout; dlgAbout.DoModal( );ShellExecute(NULL, NULL, "MyCombo.exe", NULL, "D:\\vc\\MyComb\\Debug", SW_SHOWNORMAL);
-
MyDialog
-
MyDialog Enter Data ok Display Data
-
IDCaptionIDD_MYDIALOGMyDialog IDC_EXIT_BUTTONE&xit IDC_ENTERDATA_BUTTONEnterData IDC_DISPLAYDATA_BUTTONDisplay Data IDC_ENTERSPEED_BUTTONEnterSpeed IDC_DISPLAYSPEED_BUTTONDisplay Speed
-
InsertResourceInsert ResourceDialogNew
-
IDD_DIALOG1 ViewClassWizardAdd Class Create a new class OKNew Class
-
CMyDlgCDialogIDD_DIALOG1
-
CMyDlg IDD_DIALOG1CMyDlg CMyDialogDlgAdd Member Variable
-
dlg1 Enter DataMyDialogdlg1 Enter Datavoid CMyDialogDlg::OnEnterdataButton() {// TODO: Add your control notification handler code here//dlg1.DoModal();//}
-
IDD_DIADOG1IDIDC_DATA_EDITm_DataEditValueCstring
-
Display Data DisplayDataMyDialogvoid CMyDialog1Dlg::OnDisplaydataButton() {// TODO: Add your control notification handler code here//MessageBox(dlg1.m_DataEdit);//}
-
EnterSpeedMyDialog IDD_DIALOG2
IDIDD_DIALOG2IDD_SPEED_SCROLLIDC_SPEED_EDIT
-
IDD_DIALOG2 ViewClassWizardAdd Class Create a new class OKNew Class CSpeedDlgCDialog
-
CSpeedDlg IDD_DIALOG2CSpeedDlg CMyDialogDlgAdd Member Variable
-
Enter Speedvoid CMyDialogDlg::OnEnterspeedButton() {// TODO: Add your control notification handler code here//dlg2.DoModal();//}
-
CSpeedDlgBOOL CSpeedDlg::OnInitDialog() {CDialog::OnInitDialog();// TODO: Add extra initialization herem_SpeedScroll.SetScrollRange(0,100);m_SpeedScroll.SetScrollPos(50);
m_SpeedEdit=m_SpeedScroll.GetScrollPos();UpdateData(FALSE);return TRUE;}
-
IDD_DIALOG2 CSpeedDlgWM_HSCROLL WM_HSCROLL
ID IDC_SPEED_EDIT m_SpeedEdit Valueint IDC_SPEED_SCROLLBAR m_SpeedScroll ControlCScrollBar
-
void CSpeedDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {int n;switch(nSBCode){case SB_THUMBTRACK:m_SpeedScroll.SetScrollPos(nPos); break;case SB_LINEUP:n=m_SpeedScroll.GetScrollPos(); n--;if(n100) n=100;m_SpeedScroll.SetScrollPos(n); break;WM_HSCROLL
-
case SB_PAGEUP:n=m_SpeedScroll.GetScrollPos(); n=n-10;if(n100) n=100;m_SpeedScroll.SetScrollPos(n); break;}m_SpeedEdit=m_SpeedScroll.GetScrollPos();UpdateData(FALSE);CDialog::OnHScroll(nSBCode, nPos, pScrollBar);}WM_HSCROLL
-
Display Speedvoid CMyDialogDlg::OnDisplayspeedButton() {// TODO: Add your control notification handler code here//int n=dlg2.m_SpeedEdit;char str[50];sprintf(str,"Speed:%d",n);MessageBox(str);//}
-
2. 3. 4.
-
VCMFC (SDI) (MDI)
-
Word
-
--WM_COMMANDWindows
-
()
() -
-
MySdi
-
Memo
-
Memo 6
-
IDCaptionID_STATICMEMOIDD_MEMO_FORM IDC_STATICDateIDC_DATE_EDITIDC_STATICRefIDC_REF_EDITIDC_MEMO_EDIT
-
IDD_MEMO_FORM IDD_MEMO_FORMClassWizard
IDIDC_DATE_EDITm_DateEditValueCStringIDC_REF_EDITm_RefEditValueCStringIDC_MEMO_EDITm_MemoEditValueCString
-
MEMO m_DateEdit, m_RefEdit, m_MemoEdit (CMemoView) CMemoDOCAdd Member Variable CString m_Date; CString m_Ref; CString m_Memo;
-
OnNewDocument ClassWizardCMemoDoc->CMemoDoc->OnNewDocument
-
long lTime;time(&lTime);struct tm *newtime=localtime(&lTime);//char CurrentTime[30];strcpy(CurrentTime, asctime(newtime));CurrentTime[24]='\0';//m_Date=CurrentTime;m_Ref="";m_Memo="";
-
OnInitialUpdate() ClassWizardCMemoView->CmemoView->OnInitialUpdate
-
CMemoDoc *pDoc=GetDocument();m_DateEdit=pDoc->m_Date;m_RefEdit=pDoc->m_Ref;m_MemoEdit=pDoc->m_Memo;UpdateData(FALSE);
-
ClassWizardCMemoView->IDC_DATE->EN_CHANGE OnChangeDate()EN_CHANGEIDC_DATEOnChangeDate()
-
void CMemoView::OnChangeDate() {// TODO: Add your control notification handler code hereUpdateData(TRUE);CMemoDoc*pDoc=GetDocument();pDoc->m_Date=m_DateEdit;pDoc->SetModifiedFlag();}
-
void CMemoView::OnChangeRef() {// TODO: Add your control notification handler code hereUpdateData(TRUE);CMemoDoc*pDoc=GetDocument();pDoc->m_Ref=m_RefEdit;pDoc->SetModifiedFlag();}
-
void CMemoView::OnChangeRef() {// TODO: Add your control notification handler code hereUpdateData(TRUE);CMemoDoc *pDoc=GetDocument();pDoc->m_Memo=m_MemoEdit;pDoc->SetModifiedFlag();}
-
SaveSave AsOpen Serialize()FileSaveSave AsOpenSerialize()
-
void CMemoDoc::Serialize(CArchive& ar){if (ar.IsStoring()){ arm_Memo;}}