vc 使用点滴
来源:互联网 发布:适合学英语的动漫 知乎 编辑:程序博客网 时间:2024/05/04 12:23
TCHAR szPath[MAX_PATH];
GetModuleFileName(NULL, szPath, MAX_PATH);
lstrcpy(_tcsrchr(szPath, _T('\\')) + 1, _T("dll_tl\\VS_SoftDec.dll"));
TCHAR szDll[MAX_PATH];
PathCanonicalize(szDll, szPath);
//------------------------
2、
在创建多级文件夹时用 API CreateDirectory一级一级创建文件夹的方法很是麻烦,现在用SHCreateDirectoryEx一条语句就搞定下面是一个简单的示例:
#include<windows.h>
//注意这里一定要加shlobj.h
#include<shlobj.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
}
同时在链结的时候要加入shell32.lib,该函数各个参数具体的含义可以参考一下MSDN。
//---------------------------------------------------------------
BOOL FindFirstFileExists(LPCTSTR lpPath, DWORD dwFilter)
{
WIN32_FIND_DATA fd;
HANDLE hFind = FindFirstFile(lpPath, &fd);
BOOL bFilter = (FALSE == dwFilter) ? TRUE : fd.dwFileAttributes & dwFilter;
BOOL RetValue = ((hFind != INVALID_HANDLE_VALUE) && bFilter) ? TRUE : FALSE;
FindClose(hFind);
return RetValue;
}
// 检查一个路径是否存在(绝对路径、相对路径,文件或文件夹均可)
BOOL FilePathExists(LPCTSTR lpPath)
{
return FindFirstFileExists(lpPath, FALSE);
}
// 检查一个文件夹是否存在(绝对路径、相对路径均可)
BOOL FolderExists(LPCTSTR lpPath)
{
return FindFirstFileExists(lpPath, FILE_ATTRIBUTE_DIRECTORY);
}
//-----------------------------------
WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)
{
DWORD dwMinSize;
dwMinSize = WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,NULL,0,NULL,FALSE);
if(dwSize < dwMinSize)
{
return FALSE;
}
WideCharToMultiByte(CP_OEMCP,NULL,lpcwszStr,-1,lpszStr,dwSize,NULL,FALSE);
return TRUE;
}
-----------------------------------------------------------
如果一个Custom Control控件没有和一个自定义的窗口类进行关联,这将导致你的对话框创建失败,无法现实出来。
要使用Custom Control,我们必须先写一个自定义的窗口类,例如CPieChartCtrl,派生自CWnd,
然后,在程序开始对这个窗口类进行注册,
BOOL CPieChartCtrl::RegisterWindowClass()
{
WNDCLASS wndcls;
HINSTANCE hInst = AfxGetInstanceHandle();
if (!(::GetClassInfo(hInst, BITMAPVIEWER_CLASSNAME, &wndcls)))
{
// otherwise we need to register a new class
wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
wndcls.lpfnWndProc = ::DefWindowProc;
wndcls.cbClsExtra = wndcls.cbWndExtra = 0;
wndcls.hInstance = hInst;
wndcls.hIcon = NULL;
wndcls.hCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
wndcls.hbrBackground = (HBRUSH) (COLOR_3DFACE + 1);
wndcls.lpszMenuName = NULL;
wndcls.lpszClassName = PIE_CHART_CTRL ;
if (!AfxRegisterClass(&wndcls))
{
AfxThrowResourceException();
return FALSE;
}
}
return TRUE;
}
最后在对话框的上面放一个Custom Control控件,例如:
ID:IDC_CUSTOM1
属性:class:PIE_CHART_CTRL //这是你注册的自定义窗口类
Style:0X50010000
ExStyle:0X0
在对话框的OnInitDialog()里m_wndChart.SubclassDlgItem(IDC_CUSTOM1, this);
对话框头文件里
CPieChartCtrl m_wndChart;
这样,就可以开始使用Custom Control了。
---------------------------------------------------------------------
使用 memcpy 取结构体地址时,注意要把结构体地址 转化为 char*,不然 &JGT+偏移量 结果不对
- vc 使用点滴
- VC点滴
- vc点滴
- VC点滴
- VC点滴
- VC++技术点滴
- vc入门知识点滴
- vc点滴2
- VC编程技巧点滴
- VC技术点滴
- vc++ 问题点滴
- VC 点滴 之 重绘
- JNI使用技巧点滴
- MRTG使用经验点滴
- 个人使用控件点滴
- JNI使用技巧点滴
- linux使用经验点滴
- CVS 使用点滴记录
- JQuery Tabs 学习——简单切换
- android 上企业信息云端查看及实现
- Oracle查询字段所在表及字段长度
- 网络基础知识
- Myeclipse 8.5 升级到 Myeclipse 8.6后安装SVN后 Tomcat 消失以及修改默认workspace方法
- vc 使用点滴
- Linux 内核同步机制
- 使用数据库索引的利弊
- JasperReports报表的开发流程
- MovieClip
- /bin/rm: argument list too long
- MongoDB入门简介
- window.open()和window.showModalDialog()方法有什么区别
- android布局出现nullpoint空指针异常及cast转换异常的原因