c# 获得内存DC的handle

andy3799 2011-03-09 03:22:00
我需要在程序中调用win平台的API
SendMessage(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
发送的消息原型是
LRESULT CALLBACK WindowProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);

发送一条消息HWND hwnd 目标程序的的句柄已得到, 消息体已经得到,结合消息体的WPARAM wParam是一个DC句柄(A handle to the device context to draw in摘自MSDN),LPARAM lParam 是消息的附加参数,也已经获得。

现在就差DC句柄,这个句柄不是屏幕或者屏幕放入某个窗体,而是要求为一个内存DC,我用Graphics对象关联了一个空位图

问题是:
①如何将这个Graphics对象关联内存设备,并获得这个内存DC的句柄。
②原型函数的句柄HWND是IntPtr类型的,Graphics属于.NET没有定义IntPtr,如果获得后如何转换。
③上述内容可能描述不清楚,我简单说下我的软件目的:
通过重载WndProc监视最下化时间 然后向本程序窗口发送SendMessage(窗口句柄,WM_PRINTCLIENT,内存DC,附加信息)
最终实现然后窗体只绘制在内存中而不出现在屏幕上。


...全文
172 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyline_wolf 2013-03-26
  • 打赏
  • 举报
回复
使用BitMap Bitmap map = new Bitmap(); Graphics g = Graphics.FromImage(map); IntPtr dc = g.GetHdc();
andy3799 2011-03-09
  • 打赏
  • 举报
回复
说错 是“最小化”

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧