1
A
回答
3
没有深入细节,你可以使用下面的C++类。
它使用Windows Template Library,但它应该是很简单的将其转换成普通C.
using namespace WTL;
class CIconDC : public CDC
{
public:
HBITMAP hBmpOld;
CIconDC(int cx = GetSystemMetrics(SM_CXSMICON), // width
int cy = GetSystemMetrics(SM_CYSMICON), // height
HDC templateDC = CClientDC(NULL)) // automatically calls ReleaseDC
{
this->CreateCompatibleDC(templateDC);
hBmpOld = this->SelectBitmap(CreateCompatibleBitmap(templateDC, cx, cy));
}
~CIconDC() { DeleteObject(this->SelectBitmap(hBmpOld)); }
HICON CreateIcon() const
{
// temporarily swap bitmaps to get handle of current bitmap
HBITMAP hBitmap = this->GetCurrentBitmap();
ICONINFO ii = { TRUE, 0, 0, hBitmap, hBitmap };
return CreateIconIndirect(&ii);
}
};
使用类真的简单:
CIconDC dc;
dc.LineTo(10, 10); // for example -- you can do whatever you want with the DC
CIcon hIcon = dc.CreateIcon(); // converted to an HICON!
相关问题
- 1. winapi C++ HICON
- 2. 如何将HICON从GDI复制到具有透明度的GDI +?
- 3. 如何确定HICON图标的大小?
- 4. 如何将HICON保存到.ico文件?
- 5. 如何绘制
- 6. 如何绘制
- 7. 如何绘制/绘制任意方程
- 8. 如何绘制/绘制多个矩阵
- 9. 如何绘制QLinearGradient?
- 10. 如何绘制GLCanvas?
- 11. 如何绘制图
- 12. 如何绘制QString
- 13. 如何绘制该
- 14. 如何绘制UIBezierPaths
- 15. 如何绘制MouseListenerEvent?
- 16. 将HICON保存为PNG
- 17. 如何在Android 2.2中绘制或绘制阴影绘画?
- 18. GTK +如何绘制绘图区域
- 19. 如何绘制/重绘/动画(MVC)
- 20. 如何在手动绘制的控件内绘制手动绘制的控件?
- 21. 如何将HICON转换为VC++中的HBITMAP?
- 22. 如何在窗口上设置HICON(多种尺寸的.ICO)?
- 23. 如何将两个HICON合并为一个
- 24. 如何绘制立方体
- 25. 如何绘制在Matlab
- 26. 如何绘制JMS队列?
- 27. Rails:如何绘制图表?
- 28. 如何绘制部分?
- 29. 如何绘制图形? - xamarin
- 30. 如何绘制NSCIImageRep到NSView
你尝试加载静态图标插入HICON中,还是试图在托盘中绘制动态/变化的图标? – Zac
@Zac:当然后者。 :) – Mehrdad
你使用MFC,WTL,Qt吗?或者只是直接Win32? – Zac