如何替换“开始”菜单 能否通过修改注册表达到?我没有试过hoho! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想你要用钩子函数截获创建BUTTON的API,然后用你的API函数替换系统的API。不过我没有试过,不知可不可以! 下面的程序可以在开始菜单中加入一个快捷方式按钮。 char m_strWinDir[512]; long rval; HKEY hKey; DWORD dwType; DWORD dwSize; rval = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", NULL, KEY_QUERY_VALUE, &hKey); if(rval == ERROR_SUCCESS) { dwSize = 512; rval = RegQueryValueEx(hKey, "Programs", 0, &dwType, (LPBYTE)m_strWinDir, &dwSize); rval = RegCloseKey(hKey); strcat(m_strWinDir, "\\VC±à³Ì¼¼ÇÉ"); CreateDirectory(m_strWinDir, NULL); strcat(m_strWinDir, "\\VC±à³Ì¼¼ÇÉ.lnk"); HRESULT hres; IShellLink* psl; // È¡µÃÖ¸ÏòIshellLink½Ó¿ÚµÄÖ¸Õë CoInitialize(NULL); hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&psl); if(SUCCEEDED(hres)) { IPersistFile* ppf; // ÉèÖÿì½Ý¶ÔÏ󷾶,²¢Ôö¼ÓÃèÊö psl->SetPath("c:\\VCSkill\\VCSkill.exe"); psl->SetWorkingDirectory("c:\\VCSkill"); psl->SetDescription("VC±à³Ì¼¼ÇÉ"); hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); if(SUCCEEDED(hres)) { WORD wsz[MAX_PATH]; // ×Ö·û´®ÎªANSI¸ñʽ MultiByteToWideChar(CP_ACP, 0, m_strWinDir, -1, wsz, MAX_PATH); // ±£´æÁ´½Ó hres = ppf->Save(wsz, TRUE); ppf->Release(); } psl->Release(); } } else { AfxMessageBox("´´½¨³ÌÐò×éºÍ¿ì½Ý·½Ê½Ê§°Ü£¬ÇëÉÔºó×ÔÐд´½¨!"); } panda_w(好想睡啊!):为什么我给不了分! yarao(龙江老三):分先给你,我再试试. 我和同事曾经在标题栏中加过按钮主要就是用钩子截获WM_NCPAINT消息画上图片,和替换窗口过程。但是在窗体上加按钮就不知道了。可能了你试一试截获WM_PAINT消息和用两个图片画按钮的方法并判断鼠标是否落在图片上试一试 问一个snmp trap的问题~~~ 客户程序中多线程调用同一COM的dll不同实例 完成端口 vc6导入ado组件的疑惑。 急,这两个FTP API函数的用法 CIPAdressCtrl我再什么时候给它赋值啊? wprintf输出中文为何失败??? MFC和SDK窗口的问题 VC 的 ADO 编程和 ADO.NET(C#) 有什么区别?是不是不同开发环境下的相同技术? 我最近接到一个项目,一个文本处理,查询,排版的程序,大家来说说,要多少money 各位,看看我该怎么办,帮小弟一把呀! 这难道不是一样的效果吗?
char m_strWinDir[512];
long rval;
HKEY hKey;
DWORD dwType;
DWORD dwSize;
rval = RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",
NULL, KEY_QUERY_VALUE, &hKey);
if(rval == ERROR_SUCCESS)
{
dwSize = 512;
rval = RegQueryValueEx(hKey, "Programs", 0, &dwType, (LPBYTE)m_strWinDir, &dwSize);
rval = RegCloseKey(hKey);
strcat(m_strWinDir, "\\VC±à³Ì¼¼ÇÉ");
CreateDirectory(m_strWinDir, NULL);
strcat(m_strWinDir, "\\VC±à³Ì¼¼ÇÉ.lnk");
HRESULT hres;
IShellLink* psl;
// È¡µÃÖ¸ÏòIshellLink½Ó¿ÚµÄÖ¸Õë
CoInitialize(NULL);
hres = CoCreateInstance(CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&psl);
if(SUCCEEDED(hres))
{
IPersistFile* ppf;
// ÉèÖÿì½Ý¶ÔÏ󷾶,²¢Ôö¼ÓÃèÊö
psl->SetPath("c:\\VCSkill\\VCSkill.exe");
psl->SetWorkingDirectory("c:\\VCSkill");
psl->SetDescription("VC±à³Ì¼¼ÇÉ");
hres = psl->QueryInterface(IID_IPersistFile,
(LPVOID *)&ppf);
if(SUCCEEDED(hres))
{
WORD wsz[MAX_PATH];
// ×Ö·û´®ÎªANSI¸ñʽ
MultiByteToWideChar(CP_ACP, 0, m_strWinDir, -1,
wsz, MAX_PATH);
// ±£´æÁ´½Ó
hres = ppf->Save(wsz, TRUE);
ppf->Release();
}
psl->Release();
}
}
else
{
AfxMessageBox("´´½¨³ÌÐò×éºÍ¿ì½Ý·½Ê½Ê§°Ü£¬ÇëÉÔºó×ÔÐд´½¨!");
}
为什么我给不了分!
分先给你,我再试试.