2006年11月25日 20時01 旧ブログより
Compact Frameworkで、hDCの取得を行う方法
今日、終日かかって、訳のわからん不具合に付き合わされたわけですが
その中でも、一番時間を取られたのが、これ
っんたく、hDC、簡単に取れるようにしとけ、っつうの>M$
C#:
- public class Hogehoge{
- [DllImport("coredll.dll")]
- private static extern IntPtr GetDC(IntPtr hwnd);
- [DllImport("coredll.dll")]
- private static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc);
- protected Control m_Parent;
- public Control Parent { get { return m_Parent;} set {m_Parent = value; }}
- public void func()
- {
- IntPtr tmpHdc = GetDC(m_Parent.Handle);
- Graphics g = Graphics.FromHdc(tmpHdc);
- /*お絵かきお絵かき*/
- g.Dispose();
- ReleaseDC(m_Parent.Handle, tmpHdc);
- }
- }
でも、お絵かきは、OnPaint()のイベント内でやったほうがさらによかったり...
これ、文字列の文字数とフォントから、
文字列描画用のピクセル幅が欲しかったために、実装したものであったり...




