在程序中获得其他程序的图标
两种方法
1.SDK函数SHGetFileInfo或使用ExtractIcon获得图标资源的handle
2.SDK函数SHGetFileInfo获得有关文件的很多信息,如大小图标、属性、类型等
方法一
void CSampleView::OnDraw(CDC*pDC)
{
if(::SHGetFileInfo(_T("c://windows//notepad.exe"),0,&stFileInfo,sizeof(stFileInfo),SHGFI_ICON))
{
pDC->DrawIcon(10,10,stFileInfo.hIcon);
}
}
方法二
void CSampleView::OnDraw(CDC*pDC)
{
HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("Notepad.exe"),0);
if(hIcon&&hIcon!=(HICON)-1)
pDC->DrawIcon(10,10,hIcon);
}
//notepad.exe可以用GetWindowsDirectory函数得到。
===========================================================
调用资源DLL
FindResource
LoadResource
FormatMessage
LoadAccelerators
LoadBitmap
LoadCursor
LoadIcon
LoadMenu
LoadString
===========================================================
数据类型的转换方法
一些常用数据类型的使用,我们先定义一些常见类型变量借以说明
int i=100;
long l=2001;
float f=300.2;
double d=12345.119;
char username[]="你好你好你";
char temp[200];
char *buf;
CString str;
_variant_t v1;
_bstr_t v2;
1.其他数据类型转换为字符串
短整型(int)
itoa(i,temp,10);//将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2);
ltoa(l,temp,10);//按十进制方式转换长整型(long)
2.从其他包含字符串的变量中获取指向该字符串的指针
CString变量
str="2008北京奥运";
buf=(lpstr)(lpctstr)str;
bstr类型的_variant_t变量
v1=(_bstr_t)"你好好";
buf=_com_util::convertbstrtostring((_bstr_t)v1);
3.字符串转换为其他数据类型
strcpy(temp,"123");
短整型(int)
i=atoi(temp);
长整型(long)
l=atol(temp);
浮点(double)
d=atof(temp);
4.其他数据类型转换到CString
整数(int)
str.Format("%d",i);
浮点数(float)
str.Format("%f",i);
字符串指针(char*)等已经被CString构造函数支持的数据类型可以直接赋值
str=username
5.bstr、_bstr_t与ccombstr
ccombstr、_bstr_t是对bstr的封装,bstr是指向字符串的32位指针
char*转换到bstr可以这样:
bstr b=_com_util::convertstringtobstr("数据");//使用前需要加上#include<comutil.h>
反之可以使用
char*p=_com_util::convertbstrtostring(b);
6.wParam与lParam
对消息的处理中我们经常需要将wParam或lParam等32位数据(DWORD)分解成两个16位数据(WORD)
例如
WORD lovalue=loword(lParam);//取低16位
WORD hivalue=hiword(lParam);//取高16位
对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE)
例如
WORD wvalue;
BYTE lovalue=lobyte(wvalue);//取低8位
BYTE hivalue=hibyte(wvalue);//取高8位
两种方法
1.SDK函数SHGetFileInfo或使用ExtractIcon获得图标资源的handle
2.SDK函数SHGetFileInfo获得有关文件的很多信息,如大小图标、属性、类型等
方法一
void CSampleView::OnDraw(CDC*pDC)
{
if(::SHGetFileInfo(_T("c://windows//notepad.exe"),0,&stFileInfo,sizeof(stFileInfo),SHGFI_ICON))
{
pDC->DrawIcon(10,10,stFileInfo.hIcon);
}
}
方法二
void CSampleView::OnDraw(CDC*pDC)
{
HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("Notepad.exe"),0);
if(hIcon&&hIcon!=(HICON)-1)
pDC->DrawIcon(10,10,hIcon);
}
//notepad.exe可以用GetWindowsDirectory函数得到。
===========================================================
调用资源DLL
FindResource
LoadResource
FormatMessage
LoadAccelerators
LoadBitmap
LoadCursor
LoadIcon
LoadMenu
LoadString
===========================================================
数据类型的转换方法
一些常用数据类型的使用,我们先定义一些常见类型变量借以说明
int i=100;
long l=2001;
float f=300.2;
double d=12345.119;
char username[]="你好你好你";
char temp[200];
char *buf;
CString str;
_variant_t v1;
_bstr_t v2;
1.其他数据类型转换为字符串
短整型(int)
itoa(i,temp,10);//将i转换为字符串放入temp中,最后一个数字表示十进制
itoa(i,temp,2);
ltoa(l,temp,10);//按十进制方式转换长整型(long)
2.从其他包含字符串的变量中获取指向该字符串的指针
CString变量
str="2008北京奥运";
buf=(lpstr)(lpctstr)str;
bstr类型的_variant_t变量
v1=(_bstr_t)"你好好";
buf=_com_util::convertbstrtostring((_bstr_t)v1);
3.字符串转换为其他数据类型
strcpy(temp,"123");
短整型(int)
i=atoi(temp);
长整型(long)
l=atol(temp);
浮点(double)
d=atof(temp);
4.其他数据类型转换到CString
整数(int)
str.Format("%d",i);
浮点数(float)
str.Format("%f",i);
字符串指针(char*)等已经被CString构造函数支持的数据类型可以直接赋值
str=username
5.bstr、_bstr_t与ccombstr
ccombstr、_bstr_t是对bstr的封装,bstr是指向字符串的32位指针
char*转换到bstr可以这样:
bstr b=_com_util::convertstringtobstr("数据");//使用前需要加上#include<comutil.h>
反之可以使用
char*p=_com_util::convertbstrtostring(b);
6.wParam与lParam
对消息的处理中我们经常需要将wParam或lParam等32位数据(DWORD)分解成两个16位数据(WORD)
例如
WORD lovalue=loword(lParam);//取低16位
WORD hivalue=hiword(lParam);//取高16位
对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE)
例如
WORD wvalue;
BYTE lovalue=lobyte(wvalue);//取低8位
BYTE hivalue=hibyte(wvalue);//取高8位