能否通过修改注册表达到?
我没有试过hoho!

解决方案 »

  1.   

    我想你要用钩子函数截获创建BUTTON的API,然后用你的API函数替换系统的API。不过我没有试过,不知可不可以!
      

  2.   

    下面的程序可以在开始菜单中加入一个快捷方式按钮。
             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("´´½¨³ÌÐò×éºÍ¿ì½Ý·½Ê½Ê§°Ü£¬ÇëÉÔºó×ÔÐд´½¨!");
    }
      

  3.   

    panda_w(好想睡啊!):
    为什么我给不了分!
      

  4.   

    yarao(龙江老三):
    分先给你,我再试试.
      

  5.   

    我和同事曾经在标题栏中加过按钮主要就是用钩子截获WM_NCPAINT消息画上图片,和替换窗口过程。但是在窗体上加按钮就不知道了。可能了你试一试截获WM_PAINT消息和用两个图片画按钮的方法并判断鼠标是否落在图片上试一试