Mfc BCM_设置挡板不工作

Mfc BCM_设置挡板不工作,mfc,windows-vista,uac,Mfc,Windows Vista,Uac,我在VS2005中使用MFC,我想将屏蔽图标添加到按钮。我为按钮创建了一个控制成员变量,在InitDialog中 // BCM_SETSHIELD this->m_ctrlStartact.SendMessage(0x1600+0x000C, 0, TRUE); this->m_ctrlStartact.SetButtonStyle(BS_FLAT); 但是,屏蔽不会出现。根据清单,我有正确的commctrl版本: <assemblyIdentity

我在VS2005中使用MFC,我想将屏蔽图标添加到按钮。我为按钮创建了一个控制成员变量,在InitDialog中

// BCM_SETSHIELD
this->m_ctrlStartact.SendMessage(0x1600+0x000C, 0, TRUE);
this->m_ctrlStartact.SetButtonStyle(BS_FLAT);
但是,屏蔽不会出现。根据清单,我有正确的commctrl版本:

    <assemblyIdentity 
        type="win32" 
        name="Microsoft.Windows.Common-Controls" 
        version="6.0.0.0" 
        processorArchitecture="X86" 
        publicKeyToken="6595b64144ccf1df" 
        language="*" 
    />

剩下的问题是什么?

已解决!!!出于某种原因,我将清单文件从构建中排除。现在它可以工作了:–divB 7月5日15:07

你试过换线吗?如果在SetButtonStyle之前调用SendMessage会发生什么?此外,我还看到SendMessage中的LPRAM设置为0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF?而不是Windows.Forms。这里一定缺少一些基本的东西:只是在一个非常简单的应用程序中尝试了一下。这->m_ctrlStartact.SendMessage0x1600+0x000C,0,TRUE;如果我在OnInitDialog中这样做,它对我很有用。检查m_ctrlStartact成员在您发送邮件时是否有效。Michael,也感谢您的帮助。是的,m_ctrlStartact绝对正确,例如EnableWindowFALSE works。您使用的是哪个MFC和哪个VS版本?设置为什么?如果你有>VS.2005,你能想一想让它工作需要什么吗?解决了!!!出于某种原因,我将清单文件从构建中排除。现在它起作用了: