您的位置:首页 > 编程语言

一些编程小技巧----不断更新中

2010-11-28 16:04 155 查看
一、数字转化成字符

如有 int a = 5
现在要把 5变成 '5' 放入ch中
int a=5;
int ch;
ch = a+'0';


二、给对话框标题栏 添加图标
要是给一个基于对话框的程序的主窗体,就比较简单了

只要将原来的IDR_MAINFRAME 删除,添加一个ICON 资源,将其命名为 IDR_MAINFRAME,即可。






效果如图



若是给我们自己添加的对话框添加图标,方法也很简单

第一步 添加ICON资源 并命名,如IDI_MY_PIC
第二步 定义ICON资源句柄
//在对话框映射的类的.h文件中,添加语句HICON m_hIcon;


第三步 关联ICON句柄与资源
//假设我们的project名成为MyIcon
//在对话框的映射类的构造函数中,添加语句
m_hIcon = ((CMyIconApp*)AfxGetApp())->LoadIcon(IDI_MY_PIC);



第四步 SetIcon
//在对话框映射类的InitDialog消息响应中添加代码SetIcon(m_hIcon,true);SetIcon(m_hIcon,false);

对于这两句代码的作用,网友祁超在其网易博客中表示:
原来是向窗口(窗口句柄为m_hWnd)发送了一个WM_SETICON消息,再呼出MSDN,对于这个消息,MSND上有比较详细的解释。如消息名SETICON所揭示的那样,发送这个消息给窗口,是为了让这个窗口和大图标(large icon)或者小图标(small icon)关联。在用户按ALT+TAB键切换窗口时,显示的就是大图标,小图标就是对话框窗口标题栏上的那个图标。同一的参数m_hIcon, 却带有TRUE或者FALSE,这是颇让人感到疑惑的地方。说白了其实也是很简单的事情,我们在用VC的资源编辑器编辑图标(icon)时,不是可以选择不同大小的图片来进行编辑吗?这些大小不同的图,最终都存入到同一个.ico文件中去了。所以m_hIcon指向的是一组图标,第二个参数(TRUE或者 FALSE)就是用来指定这一组图标中某一类大小的图标的,参数值为TRUE时,指明使用大图标(32*32相素),FALSE指明使用小图标 (16*16像素)。当然,一般程序中我们并没有对WM_SETICON消息进行处理,所以这些设置大小图标的事情,都被默认的消息处理函数DefWindowProc给做掉了。



三、C++ 文件包含的头文件,其内部实现函数结尾 可以 加 ‘;’也可以不加';'

譬如我们新建了C++ 头文件 ‘test.h’
其内部有实现函数Print()
//test.h
#include <stdio.h>
void Print(){
    printf("Hello HeadFile/n");
};       //这里的分号可以加,也可以不加         //目前我测试是加不加都正确,具体区别,后续在论



四、由 ICON 图标的ID获得其句柄的一种取巧方法

遇到过很多次,这个问题,可是总解决不了,无论是上网搜资料,还是在QQ技术群里问,没有得到结果

苦恼很久,想到了一个比较巧的方法

比如我们知道一个ICON资源的ID为 IDI_ICON1,
我们这样就可以得到其句柄m_hmyIcon

//App类有一个LoadIcon 函数,用来设定程序的标题的图标
//我们可以先借助这个函数,把我们想得到的句柄得到
//在给它把原来的程序图标还原回去
m_hmyIcon = AfxGetApp()->LoadIcon(IDI_ICON1);  //获得
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//还原



五、产生随机数
srand rand 包含在 stdlib.h 头文件中
include <time.h>
include <stdlib.h>

time_t t;
srand((unsigned)time(&t));
rand();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: