便签总结
来源:互联网 发布:k软件制作 编辑:程序博客网 时间:2024/04/29 10:25
1:AfxMessageBox("开机启动成功");和Messagebox("开机启动成功");之间的区别
AfxMessageBox是全局变量,在哪都可以用,而Messagebox是局部变量,MessageBox是类CWnd的一个函数,在CWnd类中或其派生类 中是全局的。
他们的参数可以使1,3,4(API中要用四个);
MessageBox:从CWnd类继承过来的用1,3个参数就行,但从CWinApp继承过来的要用4个参数。
AfxMessageBox:在哪都可以用一个参数。
2:配置文件的使用:
//写进配置文件,Note是字段名,str是键名(也就是变量名),stence[name]是键值(也就是变量的值), ".\\stent.ini"是当前路 径(配置文件的位置)
//键名和键值都是CString类型的,在MFC中字符串类型的数据是CString
WritePrivateProfileString("Note",str,stence[name],".\\stent.ini");
//从配置文件中读出,m_s也是键名,stence[name]也是键值
GetPrivateProfileString("Note", m_s, "", stence[name].GetBuffer(MAX_PATH), MAX_PATH, ".\\stent.ini");
m_s.Format("%d", name);这句话表示将int类型的name转换成CString类型的m_s,然后再用配置文件进行读写。
CTime tm;//时间函数
m_edit = tm.Format("%Y-%m-%d");//转化成CString类型,将日期转换成字符串型的,m_edit是给编辑框添加的一个变量它也是CString类型的。
3:控件:日期时间选取器的使用
CTime tm;//定义时间函数类的一个对象tm
m_riqi.GetTime(tm);//从日历中选择的时间放到tm中
//给日期时间选取器添加一个变量m_riqi,其类型为CDateTimeCtrl,
//这句话意思为日期时间选择器(CDateTimeCtrl)类型的变量m_riqi从日历中获取时间到tm中。
4:设置配景颜色的透明度
首先选中滑块单击右键选择建立类向导,在Message中选择NM_CUSTOMDRAW(移动滑块的同时透明度跟着变化),若选择 NM_RELEASEDCAPTURE则表示移动滑块松掉鼠标后透明度才变化。然后选Addfunction,然后确定,这些是为了添加消息响应的功能 ,(当滑块有变动的时候数值就变动)然后再给滑块添加一个变量,例如:m_slider,它是CSliderCtrl类型的。
将头文件中的新加的有关滑块的函数,参数改为如下形式:
afx_msg void OnCustomdrawSlider1(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar);
然后将cpp文件中此函数写成如下形式:
void CMyDlg::OnCustomdrawSlider1(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
// TODO: Add your control notification handler code here
BYTE eff=(BYTE)
m_slider.GetPos();
HINSTANCE hInst = LoadLibrary("User32.DLL");
if(hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if(fun)
{
fun(this->GetSafeHwnd(),0,eff,2);
}
FreeLibrary(hInst);
};
CString m_percentage;
m_percentage.Format("%%%d",100*eff/255);
GetDlgItem(IDC_STATIC2)->SetWindowText(m_percentage); //IDC_STATIC2是静态变量%处的位置的ID(名字),这是让数值变 //化的
//*pResult = 0;
}
//SetWindowText是一个Windows API函数。该函数改变指定窗口的标题栏的文本内容(如果窗口有标题栏)。如果指定窗口是一个 //控件,则改变控件的文本内容。然而,SetWindowText函数不改变其他应用程序中的控件的文本内容。
//GetDlgItem返回窗口中指定参数ID的子元素的句柄,可以通过返回的句柄对窗口内的子元素进行操作,
例如下面的代码
HWND GetDlgItem( int nID)const;
说明——
参数 nID:接收消息的控件的标识;
返回值:标识所标记的控制窗口句柄;
5:开机自启
选择复选框,然后双击,代码如下:
void CMyDlg::OnCheck1()
{
// TODO: Add your control notification handler code here
HKEY hKey;
//到系统的启动项
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
//得到程序自身的全路径
char pFileName[MAX_PATH] = {0};
//添加一个子Key,并设置值 // 下面的"test"是应用程序名字(不加后缀.exe)
long lRet;
if (BST_CHECKED == IsDlgButtonChecked(IDC_CHECK1))
{
//开机自起
//打开启动项Key
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
if(lRet == ERROR_SUCCESS)
{
lRet = RegSetValueEx(hKey, "test", 0, REG_SZ, (BYTE *)pFileName, dwRet);
if(lRet == ERROR_SUCCESS)
{
AfxMessageBox("开机启动成功");
}
else
{
AfxMessageBox("开机启动设置失败");
}
//关闭注册表
RegCloseKey(hKey);
}
}
else
{
//删除子项函数
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
if(lRet == ERROR_SUCCESS)
{
lRet = RegDeleteValue(hKey, "test");
RegCloseKey(hKey);
if(lRet == ERROR_SUCCESS)
{
AfxMessageBox("取消开机启动成功");
}
else
{
AfxMessageBox("取消开机启动设置失败");
}
}
}
}
6:设置编辑框控件的背景,文本颜色及对话框的颜色
在对话框头文件中,定义画刷对象和颜色结构
例如:
public:
CColorEditBoxdlg(CWnd* pParent=NULL);
CBrush m_brush1, m_brush2; //定义画刷
COLORREF m_color1, m_color2, m_textcolor;//定义颜色结构
在对话框的初始化函数OnInitDialog中,进行相应的初始化
例如:
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
······
// TODO: Add extra initialization here
m_color1=RGB(180, 180, 100);//两种颜色
m_color2=RGB(100, 100, 100);
m_textcolor=RGB(0, 0, 0);//黑色文本(字体是黑色的)
m_brush1.CreateSolidBrush(m_color1); //画刷,颜色为color1
return TRUE; // return TRUE unless you set the focus to a control
}
使用ClassWizard(建立类向导)为对话框添加VM_CTLCOLOR消息映射和消息响应函数OnCtlColor,实现编辑框的颜色设置,例如:
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(pWnd->GetDlgCtrlID()== IDC_EDIT1) //表示在这个编辑框内,如果没有if判断的话整个对话框都变成控件的颜色了
{
pDC->SetBkColor(m_color1);//输入文本的底色,将文本底色与控件的颜色设为一致
pDC->SetTextColor(m_textcolor);//输入文本的颜色
hbr = (HBRUSH) m_brush1;//编辑框控件的填充色
}
// TODO: Return a different brush if the default is not desired
return hbr;
}//这里编辑框之外的颜色并没有设置。
另外,在工程的cpp文件中,这样添加可以设置对话框的颜色。
CMyApp::CMyApp()
{
SetDialogBkColor(RGB(170, 220, 230));
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
7:如何将控件置为不能用
GetDlgItem(IDC_BUTTON1)->EnableWindow(false);//IDC_BUTTON1按钮控件的标识符,意思是禁止按钮使用
GetDlgItem(IDC_EDIT1)->EnableWindow(false); //IDC_EDIT1编辑框控件的标识符,意思是禁止编辑框使用
GetDlgItem(IDC_BUTTON1)->EnableWindow(true);//同理,允许按钮使用
GetDlgItem(IDC_EDIT1)->EnableWindow(true); //同理,允许编辑框使用
//EnableWindow该函数允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当输入被禁止时,窗口不响应鼠标和按键的 //输入,输入允许时,窗口接受所有的输入
8:Updatedata函数的使用
Updatedata(TRUE)将控件的值赋值给成员变量;(把输入一个控件中的内容赋给变量(另一个控件变量),放在赋值运算的前面)
Updatedata(FALSE)将成员变量的值赋值给控件;(可以从控件中读出,从编辑框中显示内容在最后要加这个函数)
例如下面的函数:
CString str;
int name;
str.Format("%d", name);
UpdateData(TRUE);
m_edit = "" ;
stence[name] = m_edit;
WritePrivateProfileString("Note",str,stence[name],".\\stent.ini");
UpdateData(FALSE);
9:CColorDialog的使用
类CColorDialog支持在应用中使用颜色选择对话框。CColorDialog对象是一个拥有一个颜色列表的对话框。
用户可以在列表中选择一种颜色,也可以定制颜色,在退出该对话框时,向应用告知选中的颜色。
COLORREF RGB
(
BYTEbyRed, // red component of color
BYTEbyGreen, // green component of color
BYTEbyBlue // blue component of color
);
COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。你可以使用 RGB 函数来
初始化 COLORREF。例如:
COLORREF color=RGB(0,255,0);
RGB函数接收三个 0-255 数值,一个代表红色,一个代表绿色,一个代表蓝色。在
上面的例子中,红色和蓝色值都为 0,所以在该颜色中没有红色和蓝色。绿色为最大值
255。所以该颜色为绿色。0,0,0 为黑色,255,255,255 为白色。
注释: 此内容是自己总结的感想,有些内容是从网上找的,如有侵犯请包涵。
- 便签总结
- 便签小项目总结
- 便签
- 便签
- 便签
- 【HTML5】便签
- 便签1
- 便签2
- 便签3
- 便签6
- 便签7
- Incude便签
- 便签.txt
- 桌面迷你便签
- Win7便签快捷键大全
- 桌面便签程序详解
- Windows7 快速启动便签
- Geek 便签小项目
- 发送邮件 支持添加多个附件
- 学生与程序员的过渡
- Android开发入门之网络通信(网络图片查看器)
- 内网渗透思路
- 软件测试跟踪工具Bugzilla介绍
- 便签总结
- jstl与freemark 获取不到值得区别
- PHP页面开发小结--smarty的应用
- 浅谈C/C++中的指针和数组(二)
- hdu 4523 威威猫系列故事——过生日 小模拟
- 数据挖掘中易犯的几大错误
- ASN1定义ISD和RESTORE_DATA消息参数
- glibc detected *** corrupted double-linked list:错误的原因有如下三种可能
- 键盘按钮的KeyCode值