EVC编程经验点滴(一)

1.char *_gcvt( double value, int digits, char *buffer )函数使用问题
功能:将浮点型数据转换为字符串
digits不能超过16,否则计算精度将出问题.
例如:
double preNum=9.7;
double nextNum=1;
double dblResult=preNum+nextNum;
CString dispText;
dispText=_gcvt(dblResult,20,charBuffer);

理论上dispText为10.7,但实际结果为10.6999999999999999
如果将最后一句改为:
dispText=_gcvt(dblResult,16,charBuffer);
则结果正常.
由此推测,digits参数应该在16以下

2.有段代码:
CFileDialog dlg(FALSE,L"wavtr");
if(dlg.DoModal()==IDOK)
{
AfxMessageBox(dlg.GetPathName());
}
此代码检测出的文件名为××.wav,后面的“tr”不见了,BUG?


3.
我在CE应用程序中使用了如下语句,想在任务栏托盘上显示一个图标,可是怎么都显示不出
来,只是多了一个方框,并且消息都能正常响应,不知道程序错在哪里?
程序在PC上运行正产,在EVC上就不正常,求大虾指点!
m_tnid.cbSize=sizeof(NOTIFYICONDATA);
m_tnid.hWnd=m_hWnd;
m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
m_tnid.uCallbackMessage=WM_TRAY_NOTIFY;

//用户定义的回调消息  
CString szToolTip=L"托盘图标实例";
_tcscpy(m_tnid.szTip, szToolTip);
m_tnid.uID=IDI_ICON2;

HICON hIcon=NULL;
hIcon=AfxGetApp()->LoadIcon(IDI_ICON2);
m_tnid.hIcon=hIcon;

::Shell_NotifyIcon(NIM_ADD,&m_tnid);

解答:必须使用16*16的ico图标

3.写注册表,关键点在于值的类型不同,转换的也不同
HKEY hOpenKey;
DWORD dwOpenStyle;
long lResult=0;
LPCTSTR keyName;
DWORD dwKeyValue;
LPCTSTR strKeyValue;
LPCTSTR dwKeyName;

keyName=L"ControlPanel//Volume";
lResult=RegCreateKeyEx(HKEY_CURRENT_USER,keyName,0,L"Volume",0,0,NULL,&hOpenKey,&dwOpenStyle);
dwKeyName=L"Volume";
strKeyValue=L"wowo";
dwKeyValue=789;
lResult=RegSetValueEx(hOpenKey,dwKeyName,0,REG_SZ,(BYTE*)strKeyValue,wcslen(dwKeyValue)*2); //写字符串
lResult=RegSetValueEx(hOpenKey,dwKeyName,0,REG_DWORD,(LPBYTE)&dwKeyValue,sizeof(DWORD)); //写DWORD类型
if(lResult!=ERROR_SUCCESS)
{
AfxMessageBox(L"B");
}
RegCloseKey(hOpenKey);



4.把窗口放到最前
HWND hwnd;
if(hwnd = FindWindow( LPCTSTR lpClassName,LPCTSTR lpWindowName ))
{
SetForegroundWindow(hwnd);

}

5.设置窗口标题
直接使用SetWindowText(L"");即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值