c# 获得内存DC的handle
我需要在程序中调用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,附加信息)
最终实现然后窗体只绘制在内存中而不出现在屏幕上。