Open rainit2006 opened 5 years ago
对话框 一般定义自己的对话框类时使用CDialog类作为基类。 https://img-blog.csdn.net/20161004003038583?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
简易对话框:
AfxMessageBox(_T("Uploadが失敗しました!"), MB_OK);
ラジオボタン ■入門参照: https://www.tutorialspoint.com/mfc/mfc_radio_buttons.htm
要点: 1,选择一个RadioButton设定group为True即可 2, 不需要添加RadioButton的对应变量。
■ラジオボタンをグループ化するには
A,B,C,Dがラジオボタン EがOKボタンだったとします。 1:タブオーダーを同じグループが連番になるように並べる。 2:タブオーダーの中でグループ内で一番若い番号のプロパティ-Groupをtrueにします。
例) A,BのプロパティをGroup trueにするとグループはAとB,C,Dに分かれます。 A,CのプロパティをGroup trueにするとグループはA,BとC,Dに分かれます。
遭遇的问题: ■问题:发现点击对话框关闭按钮时,对话框不关闭,反而动作和点击OK2按钮时一样。 原因: 怀疑OK2按钮的resource id 和close按钮重合了,重新定义OK2按钮的id就可以解决。
Tab控件 对应 Tab控件(好麻烦啊) 入门参考: http://www.g-ishihara.com/mfc_ta_01.htm
★注意: 自定义的控件ID有时候在编译时会说没有被定义。此时要加上 #includes “resource.h” ★注意: MBARc.rc里的控件ID必须在 resource.h里存在,而且resource.h里ID的定义值不能有冲突。
代码: 头文件里声明:
CParamTabPage1 m_TabPage_Page1;
CParamTabPage2 m_TabPage_Page2;
CParamTabPage3 m_TabPage_Page3;
在OnInitDialog()函数里
m_tabEVITSParam.InsertItem(0, "Page1");
m_tabEVITSParam.InsertItem(1, "Page2");
m_tabEVITSParam.InsertItem(2, "Page3");
m_TabPage_Page1.Create(IDD_TabPage1, &m_tabEVITSParam);
m_TabPage_Page2.Create(IDD_TabPage2, &m_tabEVITSParam);
m_TabPage_Page3.Create(IDD_TabPage3, &m_tabEVITSParam);
CRect rect;
m_tabEVITSParam.GetClientRect(&rect);
rect.OffsetRect(20, 20);
m_TabPage_Page1.MoveWindow(&rect, FALSE);
m_TabPage_Page2.MoveWindow(&rect, FALSE);
m_TabPage_Page3.MoveWindow(&rect, FALSE);
OnTcnSelchangeTab(0, 0);
//初始化控件的值
CEdit *myED_1 = (CEdit *)m_TabPage_Page1.GetDlgItem(IDC_EDIT1);
m_valude1 = “某个值”;
CString temp_Infodata.Format(_T("%f"), m_valude1);
myED_1->SetWindowText(temp_Infodata);
在函数OnTcnSelchangeTab(NMHDR pNMHDR, LRESULT pResult) 里响应tab页面 的切换
// TODO: ここにコントロール通知ハンドラー コードを追加します。
if (pResult) *pResult = 0;
int i = m_tabEVITSParam.GetCurSel();
m_TabPage_Page1.ShowWindow(i == 0 ? SW_SHOW : SW_HIDE);
m_TabPage_Page2.ShowWindow(i == 1 ? SW_SHOW : SW_HIDE);
m_TabPage_Page3.ShowWindow(i == 2 ? SW_SHOW : SW_HIDE);
MFC全局函数 https://blog.csdn.net/mimica247706624/article/details/2956262
主要全局函数有:
AfxWinInit()
AfxBeginThread()
AfxEndThread()
AfxFormatString1()
AfxFormatString2()
AfxMessageBox()
AfxOutPutDebugString()
AfxGetApp()
AfxGetMainWnd()
AfxGetInstance()
AfxRegisterClass()
不同版本的VS对MFC的支持不同 Expressには、MFC(Microsoft Foundation Class)と、ATL(Active Template Library)は含まれていません。 ※ MFCとATLは、本サイトでは扱いません。
Visual Studio Communityには、MFC(Microsoft Foundation Class)と、ATL(Active Template Library)が含まれています。
下载