/*
    protected override void WndProc(ref Message m)
    {
       base.WndProc(ref m);
       switch(m.Msg)
       {
           case WM_KEYDOWN :
           {
                int ____keyCode=m.WParam.ToInt32();
                if(____keyCode==VK_RIGHT) { // }
           }
        }
     }
     */

private const int WM_ACTIVATE           = 0x0006;
        private const int WM_ACTIVATEAPP        = 0x001C;
        private const int WM_AFXFIRST           = 0x0360;
        private const int WM_AFXLAST            = 0x037F;
        private const int WM_APP                = 0x8000;
        private const int WM_ASKCBFORMATNAME    = 0x030C;
        private const int WM_CANCELJOURNAL      = 0x004B;
        private const int WM_CANCELMODE         = 0x001F;
        private const int WM_CAPTURECHANGED     = 0x0215;
        private const int WM_CHANGECBCHAIN      = 0x030D;
        private const int WM_CHANGEUISTATE      = 0x0127;
        private const int WM_CHAR               = 0x0102;
        private const int WM_CHARTOITEM         = 0x002F;
        private const int WM_CHILDACTIVATE      = 0x0022;
        private const int WM_CLEAR              = 0x0303;
        private const int WM_CLOSE              = 0x0010;
        private const int WM_COMMAND            = 0x0111;
        private const int WM_COMPACTING         = 0x0041;
        private const int WM_COMPAREITEM        = 0x0039;
        private const int WM_CONTEXTMENU        = 0x007B;
        private const int WM_COPY               = 0x0301;
        //private const int WM_COPYDATA           = 0x004A;
        private const int WM_CREATE             = 0x0001;
        private const int WM_CTLCOLORBTN        = 0x0135;
        private const int WM_CTLCOLORDLG        = 0x0136;
        private const int WM_CTLCOLOREDIT       = 0x0133;
        private const int WM_CTLCOLORLISTBOX    = 0x0134;
        private const int WM_CTLCOLORMSGBOX     = 0x0132;
        private const int WM_CTLCOLORSCROLLBAR  = 0x0137;
        private const int WM_CTLCOLORSTATIC     = 0x0138;
        private const int WM_CUT                = 0x0300;
        private const int WM_DEADCHAR           = 0x0103;
        private const int WM_DELETEITEM         = 0x002D;
        private const int WM_DESTROY            = 0x0002;
        private const int WM_DESTROYCLIPBOARD   = 0x0307;
        private const int WM_DEVICECHANGE       = 0x0219;
        private const int WM_DEVMODECHANGE      = 0x001B;
        private const int WM_DISPLAYCHANGE      = 0x007E;
        private const int WM_DRAWCLIPBOARD      = 0x0308;
        private const int WM_DRAWITEM           = 0x002B;
        private const int WM_DROPFILES          = 0x0233;
        private const int WM_ENABLE             = 0x000A;
        private const int WM_ENDSESSION         = 0x0016;
        private const int WM_ENTERIDLE          = 0x0121;
        private const int WM_ENTERMENULOOP      = 0x0211;
        private const int WM_ENTERSIZEMOVE      = 0x0231;
        private const int WM_ERASEBKGND         = 0x0014;
        private const int WM_EXITMENULOOP       = 0x0212;
        private const int WM_EXITSIZEMOVE       = 0x0232;
        private const int WM_FONTCHANGE         = 0x001D;
        private const int WM_GETDLGCODE         = 0x0087;
        private const int WM_GETFONT            = 0x0031;
        private const int WM_GETHOTKEY          = 0x0033;
        private const int WM_GETICON            = 0x007F;
        private const int WM_GETMINMAXINFO      = 0x0024;
        private const int WM_GETOBJECT          = 0x003D;
        private const int WM_GETTEXT            = 0x000D;
        private const int WM_GETTEXTLENGTH      = 0x000E;
        private const int WM_HANDHELDFIRST      = 0x0358;
        private const int WM_HANDHELDLAST       = 0x035F;
        private const int WM_HELP               = 0x0053;
        private const int WM_HOTKEY             = 0x0312;
        private const int WM_HSCROLL            = 0x0114;
        private const int WM_HSCROLLCLIPBOARD   = 0x030E;
        private const int WM_ICONERASEBKGND     = 0x0027;
        private const int WM_IME_CHAR           = 0x0286;
        private const int WM_IME_COMPOSITION    = 0x010F;
        private const int WM_IME_COMPOSITIONFULL= 0x0284;
        private const int WM_IME_CONTROL        = 0x0283;
        private const int WM_IME_ENDCOMPOSITION = 0x010E;
        private const int WM_IME_KEYDOWN        = 0x0290;
        private const int WM_IME_KEYLAST        = 0x010F;
        private const int WM_IME_KEYUP          = 0x0291;
        private const int WM_IME_NOTIFY         = 0x0282;
        private const int WM_IME_REQUEST        = 0x0288;
        private const int WM_IME_SELECT         = 0x0285;
        private const int WM_IME_SETCONTEXT     = 0x0281;
        private const int WM_IME_STARTCOMPOSITION   = 0x010D;
        private const int WM_INITDIALOG         = 0x0110;
        private const int WM_INITMENU           = 0x0116;
        private const int WM_INITMENUPOPUP      = 0x0117;
        private const int WM_INPUTLANGCHANGE    = 0x0051;
        private const int WM_INPUTLANGCHANGEREQUEST = 0x0050;
        private const int WM_KEYDOWN        = 0x0100;
        private const int WM_KEYFIRST           = 0x0100;
        private const int WM_KEYLAST        = 0x0108;
        private const int WM_KEYUP          = 0x0101;
        private const int WM_KILLFOCUS          = 0x0008;
        private const int WM_LBUTTONDBLCLK      = 0x0203;
        private const int WM_LBUTTONDOWN        = 0x0201;
        private const int WM_LBUTTONUP          = 0x0202;
        private const int WM_MBUTTONDBLCLK      = 0x0209;
        private const int WM_MBUTTONDOWN        = 0x0207;
        private const int WM_MBUTTONUP          = 0x0208;
        private const int WM_MDIACTIVATE        = 0x0222;
        private const int WM_MDICASCADE         = 0x0227;
        private const int WM_MDICREATE          = 0x0220;
        private const int WM_MDIDESTROY         = 0x0221;
        private const int WM_MDIGETACTIVE       = 0x0229;
        private const int WM_MDIICONARRANGE     = 0x0228;
        private const int WM_MDIMAXIMIZE        = 0x0225;
        private const int WM_MDINEXT        = 0x0224;
        private const int WM_MDIREFRESHMENU     = 0x0234;
        private const int WM_MDIRESTORE         = 0x0223;
        private const int WM_MDISETMENU         = 0x0230;
        private const int WM_MDITILE        = 0x0226;
        private const int WM_MEASUREITEM        = 0x002C;
        private const int WM_MENUCHAR           = 0x0120;
        private const int WM_MENUCOMMAND        = 0x0126;
        private const int WM_MENUDRAG           = 0x0123;
        private const int WM_MENUGETOBJECT      = 0x0124;
        private const int WM_MENURBUTTONUP      = 0x0122;
        private const int WM_MENUSELECT         = 0x011F;
        private const int WM_MOUSEACTIVATE      = 0x0021;
        private const int WM_MOUSEFIRST         = 0x0200;
        private const int WM_MOUSEHOVER         = 0x02A1;
        private const int WM_MOUSELAST          = 0x020D;
        private const int WM_MOUSELEAVE         = 0x02A3;
        private const int WM_MOUSEMOVE          = 0x0200;
        private const int WM_MOUSEWHEEL         = 0x020A;
        private const int WM_MOUSEHWHEEL        = 0x020E;
        private const int WM_MOVE           = 0x0003;
        private const int WM_MOVING         = 0x0216;
        private const int WM_NCACTIVATE         = 0x0086;
        private const int WM_NCCALCSIZE         = 0x0083;
        private const int WM_NCCREATE           = 0x0081;
        private const int WM_NCDESTROY          = 0x0082;
        private const int WM_NCHITTEST          = 0x0084;
        private const int WM_NCLBUTTONDBLCLK    = 0x00A3;
        private const int WM_NCLBUTTONDOWN      = 0x00A1;
        private const int WM_NCLBUTTONUP        = 0x00A2;
        private const int WM_NCMBUTTONDBLCLK    = 0x00A9;
        private const int WM_NCMBUTTONDOWN      = 0x00A7;
        private const int WM_NCMBUTTONUP        = 0x00A8;
        private const int WM_NCMOUSEHOVER       = 0x02A0;
        private const int WM_NCMOUSELEAVE       = 0x02A2;
        private const int WM_NCMOUSEMOVE        = 0x00A0;
        private const int WM_NCPAINT        = 0x0085;
        private const int WM_NCRBUTTONDBLCLK    = 0x00A6;
        private const int WM_NCRBUTTONDOWN      = 0x00A4;
        private const int WM_NCRBUTTONUP        = 0x00A5;
        private const int WM_NCXBUTTONDBLCLK    = 0x00AD;
        private const int WM_NCXBUTTONDOWN      = 0x00AB;
        private const int WM_NCXBUTTONUP        = 0x00AC;
        private const int WM_NCUAHDRAWCAPTION       = 0x00AE;
        private const int WM_NCUAHDRAWFRAME     = 0x00AF;
        private const int WM_NEXTDLGCTL         = 0x0028;
        private const int WM_NEXTMENU           = 0x0213;
        private const int WM_NOTIFY         = 0x004E;
        private const int WM_NOTIFYFORMAT       = 0x0055;
        private const int WM_NULL           = 0x0000;
        private const int WM_PAINT          = 0x000F;
        private const int WM_PAINTCLIPBOARD     = 0x0309;
        private const int WM_PAINTICON          = 0x0026;
        private const int WM_PALETTECHANGED     = 0x0311;
        private const int WM_PALETTEISCHANGING      = 0x0310;
        private const int WM_PARENTNOTIFY       = 0x0210;
        private const int WM_PASTE          = 0x0302;
        private const int WM_PENWINFIRST        = 0x0380;
        private const int WM_PENWINLAST         = 0x038F;
        private const int WM_POWER          = 0x0048;
        private const int WM_POWERBROADCAST     = 0x0218;
        private const int WM_PRINT          = 0x0317;
        private const int WM_PRINTCLIENT        = 0x0318;
        private const int WM_QUERYDRAGICON      = 0x0037;
        private const int WM_QUERYENDSESSION    = 0x0011;
        private const int WM_QUERYNEWPALETTE    = 0x030F;
        private const int WM_QUERYOPEN          = 0x0013;
        private const int WM_QUEUESYNC          = 0x0023;
        private const int WM_QUIT           = 0x0012;
        private const int WM_RBUTTONDBLCLK      = 0x0206;
        private const int WM_RBUTTONDOWN        = 0x0204;
        private const int WM_RBUTTONUP          = 0x0205;
        private const int WM_RENDERALLFORMATS       = 0x0306;
        private const int WM_RENDERFORMAT       = 0x0305;
        private const int WM_SETCURSOR          = 0x0020;
        private const int WM_SETFOCUS           = 0x0007;
        private const int WM_SETFONT        = 0x0030;
        private const int WM_SETHOTKEY          = 0x0032;
        private const int WM_SETICON        = 0x0080;
        private const int WM_SETREDRAW          = 0x000B;
        private const int WM_SETTEXT        = 0x000C;
        private const int WM_SETTINGCHANGE      = 0x001A;
        private const int WM_SHOWWINDOW         = 0x0018;
        private const int WM_SIZE           = 0x0005;
        private const int WM_SIZECLIPBOARD      = 0x030B;
        private const int WM_SIZING         = 0x0214;
        private const int WM_SPOOLERSTATUS      = 0x002A;
        private const int WM_STYLECHANGED       = 0x007D;
        private const int WM_STYLECHANGING      = 0x007C;
        private const int WM_SYNCPAINT          = 0x0088;
        private const int WM_SYSCHAR        = 0x0106;
        private const int WM_SYSCOLORCHANGE     = 0x0015;
        private const int WM_SYSCOMMAND         = 0x0112;
        private const int WM_SYSDEADCHAR        = 0x0107;
        private const int WM_SYSKEYDOWN         = 0x0104;
        private const int WM_SYSKEYUP           = 0x0105;
        private const int WM_TCARD          = 0x0052;
        private const int WM_TIMECHANGE         = 0x001E;
        private const int WM_TIMER          = 0x0113;
        private const int WM_UNDO           = 0x0304;
        private const int WM_UNINITMENUPOPUP    = 0x0125;
        private const int WM_USER           = 0x0400;
        private const int WM_USERCHANGED        = 0x0054;
        private const int WM_VKEYTOITEM         = 0x002E;
        private const int WM_VSCROLL        = 0x0115;
        private const int WM_VSCROLLCLIPBOARD       = 0x030A;
        private const int WM_WINDOWPOSCHANGED       = 0x0047;
        private const int WM_WINDOWPOSCHANGING      = 0x0046;
        private const int WM_WININICHANGE       = 0x001A;
        private const int WM_XBUTTONDBLCLK      = 0x020D;
        private const int WM_XBUTTONDOWN        = 0x020B;
        private const int WM_XBUTTONUP          = 0x020C;

    /*
    protected override void WndProc(ref Message m)
    {
       base.WndProc(ref m);
       switch(m.Msg)
       {
           case WM_KEYDOWN :
           {
                int ____keyCode=m.WParam.ToInt32();
                if(____keyCode==VK_RIGHT) { // }
           }
        }
     }
     */

    public const int VK_0            = 0x30;
    public const int VK_1            = 0x31;
    public const int VK_2            = 0x32;
    public const int VK_3            = 0x33;
    public const int VK_4            = 0x34;
    public const int VK_5            = 0x35;
    public const int VK_6            = 0x36;
    public const int VK_7            = 0x37;
    public const int VK_8            = 0x38;
    public const int VK_9            = 0x39;
    public const int VK_A            = 0x41;
    public const int VK_B            = 0x42;
    public const int VK_C            = 0x43;
    public const int VK_D            = 0x44;
    public const int VK_E            = 0x45;
    public const int VK_F            = 0x46;
    public const int VK_G            = 0x47;
    public const int VK_H            = 0x48;
    public const int VK_I            = 0x49;
    public const int VK_J            = 0x4A;
    public const int VK_K            = 0x4B;
    public const int VK_L            = 0x4C;
    public const int VK_M            = 0x4D;
    public const int VK_N            = 0x4E;
    public const int VK_O            = 0x4F;
    public const int VK_P            = 0x50;
    public const int VK_Q            = 0x51;
    public const int VK_R            = 0x52;
    public const int VK_S            = 0x53;
    public const int VK_T            = 0x54;
    public const int VK_U            = 0x55;
    public const int VK_V            = 0x56;
    public const int VK_W            = 0x57;
    public const int VK_X            = 0x58;
    public const int VK_Y            = 0x59;
    public const int VK_Z            = 0x5A;
    public const int VK_BACK      =    0x08;
    public const int VK_TAB       =    0x09;
    public const int VK_CLEAR     =    0x0C;
    public const int VK_RETURN    =    0x0D;
    public const int VK_SHIFT     =    0x10;
    public const int VK_CONTROL   =    0x11;
    public const int VK_MENU      =    0x12;
    public const int VK_PAUSE     =    0x13;
    public const int VK_CAPITAL   =    0x14;
    public const int VK_KANA      =    0x15;
    public const int VK_HANGEUL   =    0x15;
    public const int VK_HANGUL    =    0x15;
    public const int VK_JUNJA     =    0x17;
    public const int VK_FINAL     =    0x18;
    public const int VK_HANJA     =    0x19;
    public const int VK_KANJI     =    0x19;
    public const int VK_ESCAPE    =    0x1B;
public const int VK_SPACE     =    0x20;
    public const int VK_CONVERT   =    0x1C;
    public const int VK_NONCONVERT=    0x1D;
    public const int VK_ACCEPT    =    0x1E;
    public const int VK_MODECHANGE=    0x1F;
    public const int VK_PRIOR     =    0x21;
    public const int VK_NEXT      =    0x22;
    public const int VK_END       =    0x23;
    public const int VK_HOME      =    0x24;
    public const int VK_LEFT      =    0x25;
    public const int VK_UP        =    0x26;
    public const int VK_RIGHT     =    0x27;
    public const int VK_DOWN      =    0x28;
    public const int VK_SELECT    =    0x29;
    public const int VK_PRINT     =    0x2A;
    public const int VK_EXECUTE   =    0x2B;
    public const int VK_SNAPSHOT  =    0x2C;
    public const int VK_INSERT    =    0x2D;
    public const int VK_DELETE    =    0x2E;
    public const int VK_HELP      =    0x2F;
    public const int VK_LWIN      =    0x5B;
    public const int VK_RWIN      =    0x5C;
    public const int VK_APPS      =    0x5D;
    public const int VK_SLEEP     =    0x5F;
    public const int VK_NUMPAD0   =    0x60;
    public const int VK_NUMPAD1   =    0x61;
    public const int VK_NUMPAD2   =    0x62;
    public const int VK_NUMPAD3   =    0x63;
    public const int VK_NUMPAD4   =    0x64;
    public const int VK_NUMPAD5   =    0x65;
    public const int VK_NUMPAD6   =    0x66;
    public const int VK_NUMPAD7   =    0x67;
    public const int VK_NUMPAD8   =    0x68;
    public const int VK_NUMPAD9   =    0x69;
    public const int VK_MULTIPLY  =    0x6A;
    public const int VK_ADD       =    0x6B;
    public const int VK_SEPARATOR =    0x6C;
    public const int VK_SUBTRACT  =    0x6D;
    public const int VK_DECIMAL   =    0x6E;
    public const int VK_DIVIDE    =    0x6F;
    public const int VK_F1        =    0x70;
    public const int VK_F2        =    0x71;
    public const int VK_F3        =    0x72;
    public const int VK_F4        =    0x73;
    public const int VK_F5        =    0x74;
    public const int VK_F6        =    0x75;
    public const int VK_F7        =    0x76;
    public const int VK_F8        =    0x77;
    public const int VK_F9        =    0x78;
    public const int VK_F10       =    0x79;
    public const int VK_F11       =    0x7A;
    public const int VK_F12       =    0x7B;
    public const int VK_F13       =    0x7C;
    public const int VK_F14       =    0x7D;
    public const int VK_F15       =    0x7E;
    public const int VK_F16       =    0x7F;
    public const int VK_F17       =    0x80;
    public const int VK_F18       =    0x81;
    public const int VK_F19       =    0x82;
    public const int VK_F20       =    0x83;
    public const int VK_F21       =    0x84;
    public const int VK_F22       =    0x85;
    public const int VK_F23       =    0x86;
    public const int VK_F24       =    0x87;
    public const int VK_NUMLOCK   =    0x90;
    public const int VK_SCROLL    =    0x91;

#In Form Draw & In WndProc Event
#In Form Draw & In WndProc Event
#In Form Draw & In WndProc Event

using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Windows.Input;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace ConsoleForm
{
    public class ____ConsoleDraw : Form
    {
        private const int WM_KEYDOWN = 0x0100;
        private const int WM_PAINT = 0x000F;

        static int toggle=0;
        static int index=0;

        public ____ConsoleDraw()
        {
            //
        }
        protected override void WndProc(ref Message m) //해당 overrride 메소드에서 그래픽관련 핸들을 얻어야 합니다.
        {
            base.WndProc(ref m); 

            index++;
            Console.Write("Window Message Event:" + index.ToString("000000") + "/" + m.Msg + "/");
            Console.WriteLine("0x"+Convert.ToString(m.Msg, 16) + "/");

            switch(m.Msg)
            {
                case WM_PAINT:
                if(toggle==0)
                {
                    this.Size = new Size(800,600);
                    this.Text = "HatchStyle Window Information";
                    toggle=100;
                }
                break;
                case WM_KEYDOWN : 
                    Console.WriteLine("WM_KEYDOWN"); 

                    if (m.Msg == WM_KEYDOWN)
                    {
                        Keys keyCode = (Keys)m.WParam & Keys.KeyCode;

                        switch (keyCode)
                        {
                        case Keys.F1:
                        case Keys.F2:

                        MessageBox.Show("Control.PreProcessMessage: '" +
                          keyCode.ToString() + "' pressed.");
                        break;
                        }

                        if(Keys.F1 == keyCode)
                        {
                            Application.Exit();
                        }
                        if(Keys.F2 == keyCode)
                        {
                            Console.WriteLine("F2 Key Pressed!!");

                            Graphics graphics = CreateGraphics();
                            Pen pen = new Pen(Color.Black);
                            graphics.DrawLine(pen,10,10,50,10);
                            graphics.DrawLine(pen,50,10,50,50);

                            graphics.Dispose(); // Graphics에서 사용하는 리소스를 모두 해제합니다.
                        }
                        if(Keys.F3 == keyCode)
                        {
                            Graphics graphics = CreateGraphics();
                            Font font = new Font("고딕", 12, FontStyle.Bold);

                            //1.
                            for (int h = 0; h <= 52; h++)
                            {
                                HatchStyle hs = (HatchStyle)h;
                                Brush hb = new HatchBrush(hs, Color.White);
                                graphics.FillRectangle(hb, new Rectangle((h/26)*250, (h%26)*20, 50, 20));
                                graphics.DrawString(hs.ToString(), font, Brushes.DarkGreen, (h/26)*250+50, (h%26)*20);
                            }
 
                            //2.
                            Brush brush = new SolidBrush(Color.Green);
                            graphics.FillRectangle(brush, new Rectangle(500, 20, 50, 20));
                            graphics.DrawString("SolidBrush - Green", font, Brushes.Green, 550, 20);
 
                            //3.
                            Brush tb = new TextureBrush(image);
                            graphics.FillRectangle(tb, new Rectangle(500, 40, 50, 20));
                            graphics.DrawString("TextureBrush - myimage", font, Brushes.Green, 550, 40);
                        }
                    }
                    break;
                }
            }

            [STAThread]
            static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new ____ConsoleDraw());
            }
      }//end of class
}//end of namespace 

 

#form hexa created by console(WndProc)
#form hexa created by console(WndProc)

#IDE 필요없음, Windows10 csc로 개발가능(메모장으로 개발)
#IDE 필요없음, Windows10 csc로 개발가능(메모장으로 개발)
#IDE 필요없음, Windows10 csc로 개발가능(메모장으로 개발)


Caution)Semaphor Needed, Duplicate DrawHexa Execution Error!!!!
Caution)Semaphor Needed, Duplicate DrawHexa Execution Error!!!!
Caution)Semaphor Needed, Duplicate DrawHexa Execution Error!!!!

DrawStyle 1)
DrawStyle 2)


#기본 sample(base sample code)

namespace WindowForm
{
public class ____KingDom : Form
{
private const int WM_KEYDOWN = 0x0100;
private const int WM_PAINT = 0x000F;
static int toggle=0;

static System.Timers.Timer timer;

static Graphics graphics;
static Font font;

public ____KingDom()
{
//
}
// 윈도우 메시지 처리 함수
protected override void WndProc(ref Message m)
{
  base.WndProc(ref m);
  // 메시지 콘솔 출력
  Console.Write(m.Msg + "/");
  Console.Write("0x"+Convert.ToString(m.Msg, 16) + "/");

  switch(m.Msg)
  {
    case WM_PAINT:
    if(toggle==0)
    {
      this.Size = new Size(800,800);
      this.Text = "HEXA BY CONSOLE FORM";

      graphics = CreateGraphics();
      font = new Font("바탕체", 17, FontStyle.Bold);

      toggle=100;

      timer = new System.Timers.Timer();
      timer.Interval = 1000;
      timer.Elapsed += new ElapsedEventHandler(__time_tick);
      timer.Start();

      MessageBox.Show("HEXA START, Time Interval:" + timer.Interval);

      init(ref hexa, ref xpos, ref ypos, ref __design);
      DrawHexa(hexa);
    }
    break;
    case 0x0100 :
    Console.WriteLine("WM_KEYDOWN");

    if (m.Msg == WM_KEYDOWN)
    {
      int ____keyCode=m.WParam.ToInt32();
      if(____keyCode == VK_RIGHT) //RIGHT
      {
        kk = f_rightkey(ref hexa, ref xpos, ref ypos, ref __design);
      }
      if(____keyCode == VK_LEFT) //LEFT
      {
        kk = f_leftkey(ref hexa, ref xpos, ref ypos, ref __design);
      }
      if(____keyCode == VK_SPACE) //SPACE
      {
        kk = f_spacekey(ref hexa, ref xpos, ref ypos, ref __design);
      }
      }
      break;
      }
    }

    [STAThread]
    static void Main(string[] args)
    {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new ____KingDom());
    }
  }
}

f13.cs
0.03MB

#include<limits.h> 선언후에 사용되는 정의값

stdio.h 와 마찬가지로 limits.h 도 헤더파일입니다.
다만 틀린 것이 있다면 limits.h 는 매크로 상수처럼 그 값과 변수명이 이미 정해져 있다는 것이죠. 
따라서 유효범위를 알아야 하기위해서는 변수명또한 알아두셔야합니다.

limits.h 헤더파일 내용.

#include<limits.h> 선언후에 사용되는 정의값

CHAR_BIT char의 비트 수
SCHAR_MIN signed char의 최소값
SCHAR_MAX signed char의 최대값
UCHAR_MAX unsigned char의 최대값
CHAR_MIN char의 최소값
CHAR_MAX char의 최대값
MB_LEN_MAX 멀티바이트 문자의 최대 바이트 수
SHRT_MIN short int의 최소값
SHRT_MAX short int의 최대값
USHRT_MAX unsigned short int의 최대값
INT_MIN int의 최소값
INT_MAX int의 최대값
UINT_MAX unsigned int의 최대값
LONG_MIN long int의 최소값
LONG_MAX long int의 최대값
ULONG_MAX unsigned long int의 최대값

ex)

#include<stdio.h>
#include<limits.h>

int main(void)
{
    short min = SHRT_MIN;
    short max = SHRT_MAX;

    printf("MAX:[%d],MIN[%d]\n", max, min);
    return(0);
}


#SendMessage by User Forced & When F1 KeyDown, Process example
#SendMessage by User Forced & When F1 KeyDown, Process example
#SendMessage by User Forced & When F1 KeyDown, Process example


KEY_DOWN시에, 강제로 Message를 Send 한다.
WM_KEYDOWN시에, F1이 눌리면 F1이 눌렸다고 표시한다.

private const int WM_KEYDOWN        = 0x0100;

protected override void WndProc(ref Message m)
{
  base.WndProc(ref m);

  Console.WriteLine(m.Msg); //10진수로 표시
  Console.WriteLine("0x"+Convert.ToString(m.Msg, 16)); //16진수로 표시

  switch(m.Msg)
  {
    case 0x0203 : 
      Console.WriteLine("WM_LBUTTONDBLCLK      "); 
      Console.WriteLine("QUIT--------------------------------"); 
      Application.Exit(); //강제종료
      break;
    case 0x0100 : 
    Console.WriteLine("WM_KEYDOWN ####           ---------------"); 
    ____KingDom.SendMessage(this.Handle, WM_COPYDATA, 1, 2);

    if (m.Msg == WM_KEYDOWN)
    {
      Keys keyCode = (Keys)m.WParam & Keys.KeyCode;

      if(Keys.F1 == keyCode)
      {
        Console.WriteLine("F1 Key Pressed!!");
      }
    }
    break;
  }
}

 

send_msg.cs
0.03MB

#WndProc & Message(WM_MOVE) 예제




        // 윈도우 메시지 처리 함수
        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            // 메시지 콘솔 출력
            Console.WriteLine(m.Msg);
            Console.WriteLine("----------------------0x"+Convert.ToString(m.Msg, 16));
            switch(m.Msg)
            {
                case WM_MOVE : 
                    Console.WriteLine("WM_MOVE Message Occured!!");
                    break;
            }
        }

 

message_sh.cs
0.03MB

#console tcp server ,client

 

f_ser.cs
0.00MB
f_cli.cs
0.00MB

+ Recent posts