1、在static控件中,输出结果
CString str1;
CStatic*Static_Vxyz=(CStatic*)GetDlgItem(IDC_V_XYZ);// IDC_V_XYZ为静态控件
str1.Format("%d",12);
Static_Vxyz->SetWindowTextA(str1);
只用一次的话 直接用:
GetDlgItem(IDC_CAMERA_NUM)->SetWindowText("2");
若需要频繁使用,则在初始化函数中:
CStatic *Static_Vxyz;//在.h文件中
Static=(CStatic*)GetDlgItem(IDC_V_XYZ);// 在初始化函数中
再Static_Vxyz->SetWindowTextA(str1);
2、Radiobutton
Radio1,radio2,关联一个变量m_radio1,设置为bool型
2.1、对单选按钮进行分组:
每组的第一个单选按钮设置属性:Group,Tabstop,Auto;其余按钮设置属性Tabstop,Auto。如:
Radio1、Radio2、Radio3为一组,Radio4、Radio5为一组
设定Radio1属性:Group,Tabstop,Auto
设定Radio2属性:Tabstop,Auto
设定Radio3属性:Tabstop,Auto
设定Radio4属性:Group,Tabstop,Auto
设定Radio5属性:Tabstop,Auto
2.2、用ClassWizard为单选控件定义变量,每组只能定义一个。如:m_Radio1、m_Radio4。
3.让按钮变暗和变亮
GetDlgItem(IDC_OPEN_FILE)->EnableWindow(FALSE);//变灰
GetDlgItem(IDC_OPEN_FILE)->EnableWindow(TRUE); //变亮
4.当前路径
(1)TCHARszPath[MAX_PATH];
GetModuleFileName(NULL,szPath,MAX_PATH);//得到程序模块名称,全路径
(2)当前路径的文件夹
TCHARszPath[MAX_PATH];
GetModuleFileName(NULL,szPath,MAX_PATH);//得到程序模块名称,全路径
(_tcsrchr(szPath,_T('\\')))[1] = 0; //删除文件名,只获得路径字串
CString str_url =szPath;
char *ch = _tcsrchr(szFilePath, _T('\\'));查找最后一个\出现的位置,并返回\后面的字符(包括\)
ch[1] = 0;//NULL 通过操作来操作szFilePath = 将szFilePath截断,截断最后一个\后面的字符(不包括\)
(3)shbrowseforfolder当前路径
#define STRICT
#include <windows.h>
#include <shlobj.h>
INT CALLBACKBrowseCallbackProc(HWND hwnd,
UINT uMsg,
LPARAM lp,
LPARAM pData)
{
TCHAR szDir[MAX_PATH];
switch(uMsg)
{
case BFFM_INITIALIZED:
if(GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
{
// WParam is TRUE since you arepassing a path.
// It would be FALSE if you werepassing a pidl.
SendMessage(hwnd, BFFM_SETSELECTION,TRUE, (LPARAM)szDir);
}
break;
case BFFM_SELCHANGED:
// Set the status window to the currentlyselected path.
if (SHGetPathFromIDList((LPITEMIDLIST) lp,szDir))
{
SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
}
break;
}
return 0;
}
BROWSEINFO stInfo ={NULL};
TCHAR szPath[MAX_PATH];
LPCITEMIDLIST pIdlst;
//stInfo.ulFlags =BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_USENEWUI;//d盘
//stInfo.ulFlags =BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;//桌面
stInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
stInfo.lpfn = BrowseCallbackProc;//当前文件夹,需要用回调函数
stInfo.lpszTitle= "请选择路径:";
pIdlst = SHBrowseForFolder(&stInfo);
if(!pIdlst) return ;
if(!SHGetPathFromIDList(pIdlst,szPath)) return ;
(4)相对路径
#include"../include/mv.h"
在c#中,相对路径是用"."和".."表示,
"."代表当前目录,
".."代表上一级录。
例如假设我用vs2005在D:\My Documents\Visual Studio 2005\Projects目录里创建了一个名叫controls的项目,即在Projects文件夹里有一个controls文件夹,controls文件夹里有三个文件:controls.sln controls文件夹 GulfOfStLawrence文件夹。
D:\My Documents\Visual Studio2005\Projects\Controls\Controls\bin\Debug是这个简单项目能够运行的可执行文件Controls.exe
现在我想要 D:\MyDocuments\Visual Studio 2005\Projects\Controls\GulfOfStLawrence文件夹下的Gulf_of_St._Lawrence.mxd(arcgis desktop)工程文件路径。
那么相对路径应该就是"..\..\..\GulfOfStLawrence\Gulf_of_St._Lawrence.mxd"
即stringfilename =@"..\..\..\GulfOfStLawrence\Gulf_of_St._Lawrence.mxd";
(5)打开文件夹
char* pcsun="图片文件(*.*)|*.*||";
CFileDialog OpenDialog(TRUE,NULL,0,OFN_HIDEREADONLY,LPCTSTR(pcsun),NULL);//OFN_OVERWRITEPROMPT
if(OpenDialog.DoModal()== IDCANCEL) return;
CString str;
str = OpenDialog.GetPathName();
char* path =str.GetBuffer(str.GetLength()+1);
CFileDialog
参数意义如下:
bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
lpszDefExt 指定默认的文件扩展名。
lpszFileName 指定默认的文件名。
dwFlags 指明一些特定风格。
lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:
"Chart Files (*.xlc)|*.xlc|Worksheet Files(*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files(*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
pParentWnd 为父窗口指针。