C#开发: 通信篇-串口调试助手
<p> </p><p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnC-SHARP" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">说明</span></h3>
<p><span style="font-size: 24px"> 这节教给用户使用C#做一个串口调试助手,</span></p>
<p><span style="font-size: 24px"> 用户可在此基础上依据自己的需求做修改</span></p>
<p><span style="font-size: 24px"> 本人的其它关于串口通信的上位机也会在此基础上做修改,</span></p>
<p><span style="font-size: 24px"> 请用户认真学习本节.</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229160810655-1011923245.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">新建工程</span></h3>
<p><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200228232848260-698165673.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<h3>布局串口配置页面</h3>
<p><span style="font-size: 18pt">1.拖拽上来一个 GroupBox</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200228233623244-707291891.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> <span style="font-size: 18pt">2.重新命名</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200228233834743-1703946608.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"> 3.拖拽上去6个Label,位置和显示如下</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200228234750963-484816197.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">4.</span> <span style="font-size: 18pt">拖拽上去5个ComboBox,1个Button,位置如下</span></p>
<p><span style="font-size: 24px">设置Button的显示改为打开串口</span></p>
<p><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200228235232897-615459289.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">-----------------------------------------------------------------------------------------------以上需要嵌入视频演示</span></p>
<p> </p>
<p><span style="font-size: 18pt">5. 添加ComboBox显示的内容</span></p>
<p><span style="font-size: 18pt">5.1:以波特率的ComboBox详细叙述</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229000327336-435219654.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229000400581-1226977619.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<pre>1382400
921600
460800
256000
230400
128000
115200
76800
57600
43000
38400
19200
14400
9600<br>4800<br>1200<br><br><br></pre>
<p><span style="font-size: 24px">运行一下</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229112647690-551475978.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">5.2:设置停止位的ComboBox里面的数据<br></span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229112923312-643749659.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>1<br>1.5<br>2</p>
<p> </p>
<p><span style="font-size: 18pt">5.3:设置数据位的ComboBox里面的数据</span></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229113034469-1252439169.png" alt=""></p>
<p> </p>
<p> </p>
<p>8<br>7<br>6<br>5</p>
<p> </p>
<p><span style="font-size: 18pt">5.4:设置校验位的ComboBox里面的数据</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229113152408-268063032.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p>无<br>奇校验<br>偶校验</p>
<p> </p>
<p>----------------------------------以上需要录制演示视频</p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">拖拽串口控件</span></h3>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229113500725-1289786027.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229113515493-643593180.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">获取电脑上可用串口,并显示在端口号的ComboBox里面</span></h3>
<p><span style="font-size: 18pt">1.双击窗体,进入窗体加载回调函数</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229113715326-1014994570.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">2.在页面加载函数中填写以下程序</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229114001558-1536470932.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">string</span>[] ports = System.IO.Ports.SerialPort.GetPortNames();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取电脑上可用串口号</span>
comboBox1.Items.AddRange(ports);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">给comboBox1添加数据</span>
comboBox1.SelectedIndex = comboBox1.Items.Count > <span style="color: rgba(128, 0, 128, 1)">0</span> ? <span style="color: rgba(128, 0, 128, 1)">0</span> : -<span style="color: rgba(128, 0, 128, 1)">1</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">如果里面有数据,显示第0个</span></pre>
</div>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">警告:请选择对应的comboBox</span></p>
<p><span style="font-size: 24px">comboBox1 </span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229114046029-553135819.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">3.启动</span></p>
<p><span style="font-size: 18pt">comboBox里面显示当前电脑上可用串口号</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229114157895-336477751.png" alt=""></span></p>
<p> </p>
<p><span style="font-size: 18pt">4. 设置下默认显示的配置</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229122229063-1890691033.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> comboBox2.Text = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">115200</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">默认波特率:115200</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
comboBox3.Text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">默认停止位:1</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
comboBox4.Text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">默认数据位:8</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
comboBox5.Text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">无</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">默认奇偶校验位:无</span><span style="color: rgba(0, 128, 0, 1)">*/</span></pre>
</div>
<p> </p>
<p><span style="font-size: 18pt">5.启动</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229122639221-727746052.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">打开关闭串口</span></h3>
<p><span style="font-size: 18pt">1.双击按钮进入按钮点击事件</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229114709390-355054172.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">2.按钮点击事件函数内部程序如下</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229122515502-2023027392.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">if</span> (button1.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">打开串口</span><span style="color: rgba(128, 0, 0, 1)">"</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">如果按钮显示的是打开串口</span>
<span style="color: rgba(0, 0, 255, 1)">try</span>{<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">防止意外错误</span>
serialPort1.PortName = comboBox1.Text;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取comboBox1要打开的串口号</span>
serialPort1.BaudRate = <span style="color: rgba(0, 0, 255, 1)">int</span>.Parse(comboBox2.Text);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取comboBox2选择的波特率</span>
serialPort1.DataBits = <span style="color: rgba(0, 0, 255, 1)">int</span>.Parse(comboBox4.Text);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置数据位</span>
<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">设置停止位</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (comboBox3.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span>) { serialPort1.StopBits =<span style="color: rgba(0, 0, 0, 1)"> StopBits.One; }
</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (comboBox3.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1.5</span><span style="color: rgba(128, 0, 0, 1)">"</span>) { serialPort1.StopBits =<span style="color: rgba(0, 0, 0, 1)"> StopBits.OnePointFive; }
</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (comboBox3.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>) { serialPort1.StopBits =<span style="color: rgba(0, 0, 0, 1)"> StopBits.Two; }
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">设置奇偶校验</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (comboBox5.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">无</span><span style="color: rgba(128, 0, 0, 1)">"</span>) { serialPort1.Parity =<span style="color: rgba(0, 0, 0, 1)"> Parity.None; }
</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (comboBox5.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">奇校验</span><span style="color: rgba(128, 0, 0, 1)">"</span>) { serialPort1.Parity =<span style="color: rgba(0, 0, 0, 1)"> Parity.Odd; }
</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (comboBox5.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偶校验</span><span style="color: rgba(128, 0, 0, 1)">"</span>) { serialPort1.Parity =<span style="color: rgba(0, 0, 0, 1)"> Parity.Even; }
serialPort1.Open();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">打开串口</span>
button1.Text = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">关闭串口</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">按钮显示关闭串口</span>
<span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (Exception err)
{
MessageBox.Show(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">打开失败</span><span style="color: rgba(128, 0, 0, 1)">"</span>+ err.ToString(), <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">提示!</span><span style="color: rgba(128, 0, 0, 1)">"</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">对话框显示打开失败</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span>{<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">要关闭串口</span>
<span style="color: rgba(0, 0, 255, 1)">try</span>{<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">防止意外错误</span>
serialPort1.Close();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">关闭串口</span>
<span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (Exception){}
button1.Text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">打开串口</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">按钮显示打开</span>
}</pre>
</div>
<p> </p>
<p><span style="font-size: 18pt">提示:</span><span style="font-size: 18pt">serialPort1</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229123023636-1931869421.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">3.启动测试</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229122724029-1287179826.png" alt=""> <img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229122735866-1203371971.png" alt=""></span></p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">检测串口热插拔</span></h3>
<p><span style="font-size: 18pt">1.在串口模块拔插的时候,重新更新下串口comboBox的内容</span></p>
<p><span style="font-size: 24px">然后:</span></p>
<p><span style="font-size: 24px">如果热插拔的是用户刚打开的串口,则按钮显示 "打开串口",comboBox显示初始化的串口号</span></p>
<p><span style="font-size: 24px">如果热插拔的不是用户刚打开的串口,则comboBox还是显示咱刚才的串口号</span></p>
<p> </p>
<p><span style="font-size: 24px">2.用一个变量记录用户打开的串口号</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229123758048-895405960.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre>String serialPortName;</pre>
</div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre>serialPortName = comboBox1.Text;</pre>
</div>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">2.添加系统函数 protected override void WndProc(ref Message m)</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229124503238-1550742452.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">protected</span> <span style="color: rgba(0, 0, 255, 1)">override</span> <span style="color: rgba(0, 0, 255, 1)">void</span> WndProc(<span style="color: rgba(0, 0, 255, 1)">ref</span><span style="color: rgba(0, 0, 0, 1)"> Message m)
{
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (m.Msg == <span style="color: rgba(128, 0, 128, 1)">0x0219</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设备改变</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (m.WParam.ToInt32() == <span style="color: rgba(128, 0, 128, 1)">0x8004</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">usb串口拔出</span>
<span style="color: rgba(0, 0, 255, 1)">string</span>[] ports = System.IO.Ports.SerialPort.GetPortNames();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">重新获取串口</span>
comboBox1.Items.Clear();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">清除comboBox里面的数据</span>
comboBox1.Items.AddRange(ports);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">给comboBox1添加数据</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (button1.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">关闭串口</span><span style="color: rgba(128, 0, 0, 1)">"</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用户打开过串口</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (!serialPort1.IsOpen){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用户打开的串口被关闭:说明热插拔是用户打开的串口</span>
button1.Text = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">打开串口</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
serialPort1.Dispose();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">释放掉原先的串口资源</span>
comboBox1.SelectedIndex = comboBox1.Items.Count > <span style="color: rgba(128, 0, 128, 1)">0</span> ? <span style="color: rgba(128, 0, 128, 1)">0</span> : -<span style="color: rgba(128, 0, 128, 1)">1</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">显示获取的第一个串口号</span>
<span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
comboBox1.Text </span>= serialPortName;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">显示用户打开的那个串口号</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span>{<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用户没有打开过串口</span>
comboBox1.SelectedIndex = comboBox1.Items.Count > <span style="color: rgba(128, 0, 128, 1)">0</span> ? <span style="color: rgba(128, 0, 128, 1)">0</span> : -<span style="color: rgba(128, 0, 128, 1)">1</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">显示获取的第一个串口号</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (m.WParam.ToInt32() == <span style="color: rgba(128, 0, 128, 1)">0x8000</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">usb串口连接上</span>
<span style="color: rgba(0, 0, 255, 1)">string</span>[] ports = System.IO.Ports.SerialPort.GetPortNames();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">重新获取串口</span>
<span style="color: rgba(0, 0, 0, 1)"> comboBox1.Items.Clear();
comboBox1.Items.AddRange(ports);
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (button1.Text == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">关闭串口</span><span style="color: rgba(128, 0, 0, 1)">"</span>){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">用户打开过一个串口</span>
comboBox1.Text = serialPortName;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">显示用户打开的那个串口号</span>
<span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
comboBox1.SelectedIndex </span>= comboBox1.Items.Count > <span style="color: rgba(128, 0, 128, 1)">0</span> ? <span style="color: rgba(128, 0, 128, 1)">0</span> : -<span style="color: rgba(128, 0, 128, 1)">1</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">显示获取的第一个串口号</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
}
</span><span style="color: rgba(0, 0, 255, 1)">base</span>.WndProc(<span style="color: rgba(0, 0, 255, 1)">ref</span><span style="color: rgba(0, 0, 0, 1)"> m);
}</span></pre>
</div>
<p> </p>
<p><span style="font-size: 18pt">提示:C#常用事件对应值</span></p>
<div class="cnblogs_code"><img src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt="" id="code_img_closed_8346cce8-891c-4fda-928b-2909867d42d2" class="code_img_closed"><img src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="" id="code_img_opened_8346cce8-891c-4fda-928b-2909867d42d2" class="code_img_opened" style="display: none">
<div id="cnblogs_code_open_8346cce8-891c-4fda-928b-2909867d42d2" class="cnblogs_code_hide">
<pre><span style="color: rgba(128, 128, 128, 1)">///</span><span style="color: rgba(0, 128, 0, 1)"> </span><span style="color: rgba(128, 128, 128, 1)"><summary></span><span style="color: rgba(0, 128, 0, 1)">
</span><span style="color: rgba(128, 128, 128, 1)">///</span><span style="color: rgba(0, 128, 0, 1)"> Window API enumerations
</span><span style="color: rgba(128, 128, 128, 1)">///</span><span style="color: rgba(0, 128, 0, 1)"> </span><span style="color: rgba(128, 128, 128, 1)"></summary></span>
<span style="color: rgba(0, 0, 255, 1)">#region</span> Peek Message Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> PeekMessageFlags
{
PM_NOREMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
PM_REMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
PM_NOYIELD </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Windows Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> WinMsg
{
WM_NULL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0000</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CREATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DESTROY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0003</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0005</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0006</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETFOCUS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0007</span><span style="color: rgba(0, 0, 0, 1)">,
WM_KILLFOCUS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ENABLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x000A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETREDRAW </span>= <span style="color: rgba(128, 0, 128, 1)">0x000B</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETTEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x000C</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETTEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x000D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETTEXTLENGTH </span>= <span style="color: rgba(128, 0, 128, 1)">0x000E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x000F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CLOSE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
WM_QUERYENDSESSION </span>= <span style="color: rgba(128, 0, 128, 1)">0x0011</span><span style="color: rgba(0, 0, 0, 1)">,
WM_QUIT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0012</span><span style="color: rgba(0, 0, 0, 1)">,
WM_QUERYOPEN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0013</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ERASEBKGND </span>= <span style="color: rgba(128, 0, 128, 1)">0x0014</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYSCOLORCHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0015</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ENDSESSION </span>= <span style="color: rgba(128, 0, 128, 1)">0x0016</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SHOWWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x0018</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLOR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0019</span><span style="color: rgba(0, 0, 0, 1)">,
WM_WININICHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETTINGCHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DEVMODECHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001B</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ACTIVATEAPP </span>= <span style="color: rgba(128, 0, 128, 1)">0x001C</span><span style="color: rgba(0, 0, 0, 1)">,
WM_FONTCHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_TIMECHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CANCELMODE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETCURSOR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOUSEACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0021</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CHILDACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0022</span><span style="color: rgba(0, 0, 0, 1)">,
WM_QUEUESYNC </span>= <span style="color: rgba(128, 0, 128, 1)">0x0023</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETMINMAXINFO </span>= <span style="color: rgba(128, 0, 128, 1)">0x0024</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PAINTICON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0026</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ICONERASEBKGND </span>= <span style="color: rgba(128, 0, 128, 1)">0x0027</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NEXTDLGCTL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0028</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SPOOLERSTATUS </span>= <span style="color: rgba(128, 0, 128, 1)">0x002A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DRAWITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x002B</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MEASUREITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x002C</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DELETEITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x002D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_VKEYTOITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x002E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CHARTOITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x002F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETFONT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0030</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETFONT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0031</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETHOTKEY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0032</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETHOTKEY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0033</span><span style="color: rgba(0, 0, 0, 1)">,
WM_QUERYDRAGICON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0037</span><span style="color: rgba(0, 0, 0, 1)">,
WM_COMPAREITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x0039</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETOBJECT </span>= <span style="color: rgba(128, 0, 128, 1)">0x003D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_COMPACTING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0041</span><span style="color: rgba(0, 0, 0, 1)">,
WM_COMMNOTIFY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0044</span><span style="color: rgba(0, 0, 0, 1)">,
WM_WINDOWPOSCHANGING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0046</span><span style="color: rgba(0, 0, 0, 1)">,
WM_WINDOWPOSCHANGED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0047</span><span style="color: rgba(0, 0, 0, 1)">,
WM_POWER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0048</span><span style="color: rgba(0, 0, 0, 1)">,
WM_COPYDATA </span>= <span style="color: rgba(128, 0, 128, 1)">0x004A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CANCELJOURNAL </span>= <span style="color: rgba(128, 0, 128, 1)">0x004B</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NOTIFY </span>= <span style="color: rgba(128, 0, 128, 1)">0x004E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_INPUTLANGCHANGEREQUEST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0050</span><span style="color: rgba(0, 0, 0, 1)">,
WM_INPUTLANGCHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0051</span><span style="color: rgba(0, 0, 0, 1)">,
WM_TCARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x0052</span><span style="color: rgba(0, 0, 0, 1)">,
WM_HELP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0053</span><span style="color: rgba(0, 0, 0, 1)">,
WM_USERCHANGED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0054</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NOTIFYFORMAT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0055</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CONTEXTMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x007B</span><span style="color: rgba(0, 0, 0, 1)">,
WM_STYLECHANGING </span>= <span style="color: rgba(128, 0, 128, 1)">0x007C</span><span style="color: rgba(0, 0, 0, 1)">,
WM_STYLECHANGED </span>= <span style="color: rgba(128, 0, 128, 1)">0x007D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DISPLAYCHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x007E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETICON </span>= <span style="color: rgba(128, 0, 128, 1)">0x007F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SETICON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCCREATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0081</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCDESTROY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0082</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCCALCSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0083</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCHITTEST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0084</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0085</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0086</span><span style="color: rgba(0, 0, 0, 1)">,
WM_GETDLGCODE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0087</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYNCPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0088</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCMOUSEMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A0</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCLBUTTONDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A1</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCLBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A2</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCLBUTTONDBLCLK </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A3</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCRBUTTONDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A4</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCRBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A5</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCRBUTTONDBLCLK </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A6</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCMBUTTONDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A7</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCMBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A8</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NCMBUTTONDBLCLK </span>= <span style="color: rgba(128, 0, 128, 1)">0x00A9</span><span style="color: rgba(0, 0, 0, 1)">,
WM_KEYDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
WM_KEYUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0101</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CHAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0102</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DEADCHAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0103</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYSKEYDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0104</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYSKEYUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0105</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYSCHAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0106</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYSDEADCHAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0107</span><span style="color: rgba(0, 0, 0, 1)">,
WM_KEYLAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0108</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_STARTCOMPOSITION </span>= <span style="color: rgba(128, 0, 128, 1)">0x010D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_ENDCOMPOSITION </span>= <span style="color: rgba(128, 0, 128, 1)">0x010E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_COMPOSITION </span>= <span style="color: rgba(128, 0, 128, 1)">0x010F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_KEYLAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x010F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_INITDIALOG </span>= <span style="color: rgba(128, 0, 128, 1)">0x0110</span><span style="color: rgba(0, 0, 0, 1)">,
WM_COMMAND </span>= <span style="color: rgba(128, 0, 128, 1)">0x0111</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SYSCOMMAND </span>= <span style="color: rgba(128, 0, 128, 1)">0x0112</span><span style="color: rgba(0, 0, 0, 1)">,
WM_TIMER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0113</span><span style="color: rgba(0, 0, 0, 1)">,
WM_HSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0114</span><span style="color: rgba(0, 0, 0, 1)">,
WM_VSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0115</span><span style="color: rgba(0, 0, 0, 1)">,
WM_INITMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x0116</span><span style="color: rgba(0, 0, 0, 1)">,
WM_INITMENUPOPUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0117</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MENUSELECT </span>= <span style="color: rgba(128, 0, 128, 1)">0x011F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MENUCHAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0120</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ENTERIDLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0121</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MENURBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0122</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MENUDRAG </span>= <span style="color: rgba(128, 0, 128, 1)">0x0123</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MENUGETOBJECT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0124</span><span style="color: rgba(0, 0, 0, 1)">,
WM_UNINITMENUPOPUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0125</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MENUCOMMAND </span>= <span style="color: rgba(128, 0, 128, 1)">0x0126</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLORWinMsgBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0x0132</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLOREDIT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0133</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLORLISTBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0x0134</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLORBTN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0135</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLORDLG </span>= <span style="color: rgba(128, 0, 128, 1)">0x0136</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLORSCROLLBAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0137</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CTLCOLORSTATIC </span>= <span style="color: rgba(128, 0, 128, 1)">0x0138</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOUSEMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
WM_LBUTTONDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0201</span><span style="color: rgba(0, 0, 0, 1)">,
WM_LBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0202</span><span style="color: rgba(0, 0, 0, 1)">,
WM_LBUTTONDBLCLK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0203</span><span style="color: rgba(0, 0, 0, 1)">,
WM_RBUTTONDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0204</span><span style="color: rgba(0, 0, 0, 1)">,
WM_RBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0205</span><span style="color: rgba(0, 0, 0, 1)">,
WM_RBUTTONDBLCLK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0206</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MBUTTONDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0207</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MBUTTONUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0208</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MBUTTONDBLCLK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0209</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOUSEWHEEL </span>= <span style="color: rgba(128, 0, 128, 1)">0x020A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PARENTNOTIFY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0210</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ENTERMENULOOP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0211</span><span style="color: rgba(0, 0, 0, 1)">,
WM_EXITMENULOOP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0212</span><span style="color: rgba(0, 0, 0, 1)">,
WM_NEXTMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x0213</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SIZING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0214</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CAPTURECHANGED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0215</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOVING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0216</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DEVICECHANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0219</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDICREATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0220</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIDESTROY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0221</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0222</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIRESTORE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0223</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDINEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0224</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIMAXIMIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0225</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDITILE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0226</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDICASCADE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0227</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIICONARRANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0228</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIGETACTIVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0229</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDISETMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x0230</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ENTERSIZEMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0231</span><span style="color: rgba(0, 0, 0, 1)">,
WM_EXITSIZEMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0232</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DROPFILES </span>= <span style="color: rgba(128, 0, 128, 1)">0x0233</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MDIREFRESHMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x0234</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_SETCONTEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0281</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_NOTIFY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0282</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_CONTROL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0283</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_COMPOSITIONFULL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0284</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_SELECT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0285</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_CHAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0286</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_REQUEST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0288</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_KEYDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0290</span><span style="color: rgba(0, 0, 0, 1)">,
WM_IME_KEYUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0291</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOUSEHOVER </span>= <span style="color: rgba(128, 0, 128, 1)">0x02A1</span><span style="color: rgba(0, 0, 0, 1)">,
WM_MOUSELEAVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x02A3</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CUT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0300</span><span style="color: rgba(0, 0, 0, 1)">,
WM_COPY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0301</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PASTE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0302</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CLEAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0303</span><span style="color: rgba(0, 0, 0, 1)">,
WM_UNDO </span>= <span style="color: rgba(128, 0, 128, 1)">0x0304</span><span style="color: rgba(0, 0, 0, 1)">,
WM_RENDERFORMAT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0305</span><span style="color: rgba(0, 0, 0, 1)">,
WM_RENDERALLFORMATS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0306</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DESTROYCLIPBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x0307</span><span style="color: rgba(0, 0, 0, 1)">,
WM_DRAWCLIPBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x0308</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PAINTCLIPBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x0309</span><span style="color: rgba(0, 0, 0, 1)">,
WM_VSCROLLCLIPBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x030A</span><span style="color: rgba(0, 0, 0, 1)">,
WM_SIZECLIPBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x030B</span><span style="color: rgba(0, 0, 0, 1)">,
WM_ASKCBFORMATNAME </span>= <span style="color: rgba(128, 0, 128, 1)">0x030C</span><span style="color: rgba(0, 0, 0, 1)">,
WM_CHANGECBCHAIN </span>= <span style="color: rgba(128, 0, 128, 1)">0x030D</span><span style="color: rgba(0, 0, 0, 1)">,
WM_HSCROLLCLIPBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">0x030E</span><span style="color: rgba(0, 0, 0, 1)">,
WM_QUERYNEWPALETTE </span>= <span style="color: rgba(128, 0, 128, 1)">0x030F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PALETTEISCHANGING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0310</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PALETTECHANGED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0311</span><span style="color: rgba(0, 0, 0, 1)">,
WM_HOTKEY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0312</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PRINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0317</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PRINTCLIENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0318</span><span style="color: rgba(0, 0, 0, 1)">,
WM_HANDHELDFIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0358</span><span style="color: rgba(0, 0, 0, 1)">,
WM_HANDHELDLAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x035F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_AFXFIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0360</span><span style="color: rgba(0, 0, 0, 1)">,
WM_AFXLAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x037F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PENWINFIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0380</span><span style="color: rgba(0, 0, 0, 1)">,
WM_PENWINLAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x038F</span><span style="color: rgba(0, 0, 0, 1)">,
WM_APP </span>= <span style="color: rgba(128, 0, 128, 1)">0x8000</span><span style="color: rgba(0, 0, 0, 1)">,
WM_USER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
WM_REFLECT </span>= WM_USER + <span style="color: rgba(128, 0, 128, 1)">0x1c00</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Window Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> WindowStyles : <span style="color: rgba(0, 0, 255, 1)">uint</span><span style="color: rgba(0, 0, 0, 1)">
{
WS_OVERLAPPED </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_POPUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x80000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_CHILD </span>= <span style="color: rgba(128, 0, 128, 1)">0x40000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_MINIMIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x20000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_VISIBLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x10000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_DISABLED </span>= <span style="color: rgba(128, 0, 128, 1)">0x08000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_CLIPSIBLINGS </span>= <span style="color: rgba(128, 0, 128, 1)">0x04000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_CLIPCHILDREN </span>= <span style="color: rgba(128, 0, 128, 1)">0x02000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_MAXIMIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x01000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_CAPTION </span>= <span style="color: rgba(128, 0, 128, 1)">0x00C00000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_BORDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x00800000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_DLGFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">0x00400000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_VSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">0x00200000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_HSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">0x00100000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_SYSMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x00080000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_THICKFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">0x00040000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_GROUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00020000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_TABSTOP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00010000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_MINIMIZEBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0x00020000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_MAXIMIZEBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0x00010000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_TILED </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_ICONIC </span>= <span style="color: rgba(128, 0, 128, 1)">0x20000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_SIZEBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0x00040000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_POPUPWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x80880000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_OVERLAPPEDWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00CF0000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_TILEDWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00CF0000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_CHILDWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x40000000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Window Extended Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> WindowExStyles
{
WS_EX_DLGMODALFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_NOPARENTNOTIFY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_TOPMOST </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_ACCEPTFILES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_TRANSPARENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_MDICHILD </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_TOOLWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000080</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_WINDOWEDGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000100</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_CLIENTEDGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000200</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_CONTEXTHELP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000400</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_RIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00001000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_LEFT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_RTLREADING </span>= <span style="color: rgba(128, 0, 128, 1)">0x00002000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_LTRREADING </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_LEFTSCROLLBAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x00004000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_RIGHTSCROLLBAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_CONTROLPARENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00010000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_STATICEDGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00020000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_APPWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00040000</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_OVERLAPPEDWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000300</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_PALETTEWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000188</span><span style="color: rgba(0, 0, 0, 1)">,
WS_EX_LAYERED </span>= <span style="color: rgba(128, 0, 128, 1)">0x00080000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ShowWindow Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> ShowWindowStyles : <span style="color: rgba(0, 0, 255, 1)">short</span><span style="color: rgba(0, 0, 0, 1)">
{
SW_HIDE </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWNORMAL </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
SW_NORMAL </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWMINIMIZED </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWMAXIMIZED </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
SW_MAXIMIZE </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWNOACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOW </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
SW_MINIMIZE </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWMINNOACTIVE </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWNA </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">,
SW_RESTORE </span>= <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SHOWDEFAULT </span>= <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
SW_FORCEMINIMIZE </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">,
SW_MAX </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> SetWindowPos Z Order<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> SetWindowPosZOrder
{
HWND_TOP </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
HWND_BOTTOM </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
HWND_TOPMOST </span>= -<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
HWND_NOTOPMOST </span>= -<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> SetWindowPosFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> SetWindowPosFlags : <span style="color: rgba(0, 0, 255, 1)">uint</span><span style="color: rgba(0, 0, 0, 1)">
{
SWP_NOSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOMOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOZORDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOREDRAW </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_FRAMECHANGED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_SHOWWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x0040</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_HIDEWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOCOPYBITS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOOWNERZORDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOSENDCHANGING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_DRAWFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_NOREPOSITION </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_DEFERERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x2000</span><span style="color: rgba(0, 0, 0, 1)">,
SWP_ASYNCWINDOWPOS </span>= <span style="color: rgba(128, 0, 128, 1)">0x4000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Virtual Keys<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> VirtualKeys
{
VK_LBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x01</span><span style="color: rgba(0, 0, 0, 1)">,
VK_CANCEL </span>= <span style="color: rgba(128, 0, 128, 1)">0x03</span><span style="color: rgba(0, 0, 0, 1)">,
VK_BACK </span>= <span style="color: rgba(128, 0, 128, 1)">0x08</span><span style="color: rgba(0, 0, 0, 1)">,
VK_TAB </span>= <span style="color: rgba(128, 0, 128, 1)">0x09</span><span style="color: rgba(0, 0, 0, 1)">,
VK_CLEAR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0C</span><span style="color: rgba(0, 0, 0, 1)">,
VK_RETURN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0D</span><span style="color: rgba(0, 0, 0, 1)">,
VK_SHIFT </span>= <span style="color: rgba(128, 0, 128, 1)">0x10</span><span style="color: rgba(0, 0, 0, 1)">,
VK_CONTROL </span>= <span style="color: rgba(128, 0, 128, 1)">0x11</span><span style="color: rgba(0, 0, 0, 1)">,
VK_MENU </span>= <span style="color: rgba(128, 0, 128, 1)">0x12</span><span style="color: rgba(0, 0, 0, 1)">,
VK_CAPITAL </span>= <span style="color: rgba(128, 0, 128, 1)">0x14</span><span style="color: rgba(0, 0, 0, 1)">,
VK_ESCAPE </span>= <span style="color: rgba(128, 0, 128, 1)">0x1B</span><span style="color: rgba(0, 0, 0, 1)">,
VK_SPACE </span>= <span style="color: rgba(128, 0, 128, 1)">0x20</span><span style="color: rgba(0, 0, 0, 1)">,
VK_PRIOR </span>= <span style="color: rgba(128, 0, 128, 1)">0x21</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x22</span><span style="color: rgba(0, 0, 0, 1)">,
VK_END </span>= <span style="color: rgba(128, 0, 128, 1)">0x23</span><span style="color: rgba(0, 0, 0, 1)">,
VK_HOME </span>= <span style="color: rgba(128, 0, 128, 1)">0x24</span><span style="color: rgba(0, 0, 0, 1)">,
VK_LEFT </span>= <span style="color: rgba(128, 0, 128, 1)">0x25</span><span style="color: rgba(0, 0, 0, 1)">,
VK_UP </span>= <span style="color: rgba(128, 0, 128, 1)">0x26</span><span style="color: rgba(0, 0, 0, 1)">,
VK_RIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">0x27</span><span style="color: rgba(0, 0, 0, 1)">,
VK_DOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x28</span><span style="color: rgba(0, 0, 0, 1)">,
VK_SELECT </span>= <span style="color: rgba(128, 0, 128, 1)">0x29</span><span style="color: rgba(0, 0, 0, 1)">,
VK_EXECUTE </span>= <span style="color: rgba(128, 0, 128, 1)">0x2B</span><span style="color: rgba(0, 0, 0, 1)">,
VK_SNAPSHOT </span>= <span style="color: rgba(128, 0, 128, 1)">0x2C</span><span style="color: rgba(0, 0, 0, 1)">,
VK_HELP </span>= <span style="color: rgba(128, 0, 128, 1)">0x2F</span><span style="color: rgba(0, 0, 0, 1)">,
VK_0 </span>= <span style="color: rgba(128, 0, 128, 1)">0x30</span><span style="color: rgba(0, 0, 0, 1)">,
VK_1 </span>= <span style="color: rgba(128, 0, 128, 1)">0x31</span><span style="color: rgba(0, 0, 0, 1)">,
VK_2 </span>= <span style="color: rgba(128, 0, 128, 1)">0x32</span><span style="color: rgba(0, 0, 0, 1)">,
VK_3 </span>= <span style="color: rgba(128, 0, 128, 1)">0x33</span><span style="color: rgba(0, 0, 0, 1)">,
VK_4 </span>= <span style="color: rgba(128, 0, 128, 1)">0x34</span><span style="color: rgba(0, 0, 0, 1)">,
VK_5 </span>= <span style="color: rgba(128, 0, 128, 1)">0x35</span><span style="color: rgba(0, 0, 0, 1)">,
VK_6 </span>= <span style="color: rgba(128, 0, 128, 1)">0x36</span><span style="color: rgba(0, 0, 0, 1)">,
VK_7 </span>= <span style="color: rgba(128, 0, 128, 1)">0x37</span><span style="color: rgba(0, 0, 0, 1)">,
VK_8 </span>= <span style="color: rgba(128, 0, 128, 1)">0x38</span><span style="color: rgba(0, 0, 0, 1)">,
VK_9 </span>= <span style="color: rgba(128, 0, 128, 1)">0x39</span><span style="color: rgba(0, 0, 0, 1)">,
VK_A </span>= <span style="color: rgba(128, 0, 128, 1)">0x41</span><span style="color: rgba(0, 0, 0, 1)">,
VK_B </span>= <span style="color: rgba(128, 0, 128, 1)">0x42</span><span style="color: rgba(0, 0, 0, 1)">,
VK_C </span>= <span style="color: rgba(128, 0, 128, 1)">0x43</span><span style="color: rgba(0, 0, 0, 1)">,
VK_D </span>= <span style="color: rgba(128, 0, 128, 1)">0x44</span><span style="color: rgba(0, 0, 0, 1)">,
VK_E </span>= <span style="color: rgba(128, 0, 128, 1)">0x45</span><span style="color: rgba(0, 0, 0, 1)">,
VK_F </span>= <span style="color: rgba(128, 0, 128, 1)">0x46</span><span style="color: rgba(0, 0, 0, 1)">,
VK_G </span>= <span style="color: rgba(128, 0, 128, 1)">0x47</span><span style="color: rgba(0, 0, 0, 1)">,
VK_H </span>= <span style="color: rgba(128, 0, 128, 1)">0x48</span><span style="color: rgba(0, 0, 0, 1)">,
VK_I </span>= <span style="color: rgba(128, 0, 128, 1)">0x49</span><span style="color: rgba(0, 0, 0, 1)">,
VK_J </span>= <span style="color: rgba(128, 0, 128, 1)">0x4A</span><span style="color: rgba(0, 0, 0, 1)">,
VK_K </span>= <span style="color: rgba(128, 0, 128, 1)">0x4B</span><span style="color: rgba(0, 0, 0, 1)">,
VK_L </span>= <span style="color: rgba(128, 0, 128, 1)">0x4C</span><span style="color: rgba(0, 0, 0, 1)">,
VK_M </span>= <span style="color: rgba(128, 0, 128, 1)">0x4D</span><span style="color: rgba(0, 0, 0, 1)">,
VK_N </span>= <span style="color: rgba(128, 0, 128, 1)">0x4E</span><span style="color: rgba(0, 0, 0, 1)">,
VK_O </span>= <span style="color: rgba(128, 0, 128, 1)">0x4F</span><span style="color: rgba(0, 0, 0, 1)">,
VK_P </span>= <span style="color: rgba(128, 0, 128, 1)">0x50</span><span style="color: rgba(0, 0, 0, 1)">,
VK_Q </span>= <span style="color: rgba(128, 0, 128, 1)">0x51</span><span style="color: rgba(0, 0, 0, 1)">,
VK_R </span>= <span style="color: rgba(128, 0, 128, 1)">0x52</span><span style="color: rgba(0, 0, 0, 1)">,
VK_S </span>= <span style="color: rgba(128, 0, 128, 1)">0x53</span><span style="color: rgba(0, 0, 0, 1)">,
VK_T </span>= <span style="color: rgba(128, 0, 128, 1)">0x54</span><span style="color: rgba(0, 0, 0, 1)">,
VK_U </span>= <span style="color: rgba(128, 0, 128, 1)">0x55</span><span style="color: rgba(0, 0, 0, 1)">,
VK_V </span>= <span style="color: rgba(128, 0, 128, 1)">0x56</span><span style="color: rgba(0, 0, 0, 1)">,
VK_W </span>= <span style="color: rgba(128, 0, 128, 1)">0x57</span><span style="color: rgba(0, 0, 0, 1)">,
VK_X </span>= <span style="color: rgba(128, 0, 128, 1)">0x58</span><span style="color: rgba(0, 0, 0, 1)">,
VK_Y </span>= <span style="color: rgba(128, 0, 128, 1)">0x59</span><span style="color: rgba(0, 0, 0, 1)">,
VK_Z </span>= <span style="color: rgba(128, 0, 128, 1)">0x5A</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD0 </span>= <span style="color: rgba(128, 0, 128, 1)">0x60</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD1 </span>= <span style="color: rgba(128, 0, 128, 1)">0x61</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD2 </span>= <span style="color: rgba(128, 0, 128, 1)">0x62</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD3 </span>= <span style="color: rgba(128, 0, 128, 1)">0x63</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD4 </span>= <span style="color: rgba(128, 0, 128, 1)">0x64</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD5 </span>= <span style="color: rgba(128, 0, 128, 1)">0x65</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD6 </span>= <span style="color: rgba(128, 0, 128, 1)">0x66</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD7 </span>= <span style="color: rgba(128, 0, 128, 1)">0x67</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD8 </span>= <span style="color: rgba(128, 0, 128, 1)">0x68</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NUMPAD9 </span>= <span style="color: rgba(128, 0, 128, 1)">0x69</span><span style="color: rgba(0, 0, 0, 1)">,
VK_MULTIPLY </span>= <span style="color: rgba(128, 0, 128, 1)">0x6A</span><span style="color: rgba(0, 0, 0, 1)">,
VK_ADD </span>= <span style="color: rgba(128, 0, 128, 1)">0x6B</span><span style="color: rgba(0, 0, 0, 1)">,
VK_SEPARATOR </span>= <span style="color: rgba(128, 0, 128, 1)">0x6C</span><span style="color: rgba(0, 0, 0, 1)">,
VK_SUBTRACT </span>= <span style="color: rgba(128, 0, 128, 1)">0x6D</span><span style="color: rgba(0, 0, 0, 1)">,
VK_DECIMAL </span>= <span style="color: rgba(128, 0, 128, 1)">0x6E</span><span style="color: rgba(0, 0, 0, 1)">,
VK_DIVIDE </span>= <span style="color: rgba(128, 0, 128, 1)">0x6F</span><span style="color: rgba(0, 0, 0, 1)">,
VK_ATTN </span>= <span style="color: rgba(128, 0, 128, 1)">0xF6</span><span style="color: rgba(0, 0, 0, 1)">,
VK_CRSEL </span>= <span style="color: rgba(128, 0, 128, 1)">0xF7</span><span style="color: rgba(0, 0, 0, 1)">,
VK_EXSEL </span>= <span style="color: rgba(128, 0, 128, 1)">0xF8</span><span style="color: rgba(0, 0, 0, 1)">,
VK_EREOF </span>= <span style="color: rgba(128, 0, 128, 1)">0xF9</span><span style="color: rgba(0, 0, 0, 1)">,
VK_PLAY </span>= <span style="color: rgba(128, 0, 128, 1)">0xFA</span><span style="color: rgba(0, 0, 0, 1)">,
VK_ZOOM </span>= <span style="color: rgba(128, 0, 128, 1)">0xFB</span><span style="color: rgba(0, 0, 0, 1)">,
VK_NONAME </span>= <span style="color: rgba(128, 0, 128, 1)">0xFC</span><span style="color: rgba(0, 0, 0, 1)">,
VK_PA1 </span>= <span style="color: rgba(128, 0, 128, 1)">0xFD</span><span style="color: rgba(0, 0, 0, 1)">,
VK_OEM_CLEAR </span>= <span style="color: rgba(128, 0, 128, 1)">0xFE</span><span style="color: rgba(0, 0, 0, 1)">,
VK_LWIN </span>= <span style="color: rgba(128, 0, 128, 1)">0x5B</span><span style="color: rgba(0, 0, 0, 1)">,
VK_RWIN </span>= <span style="color: rgba(128, 0, 128, 1)">0x5C</span><span style="color: rgba(0, 0, 0, 1)">,
VK_APPS </span>= <span style="color: rgba(128, 0, 128, 1)">0x5D</span><span style="color: rgba(0, 0, 0, 1)">,
VK_LSHIFT </span>= <span style="color: rgba(128, 0, 128, 1)">0xA0</span><span style="color: rgba(0, 0, 0, 1)">,
VK_RSHIFT </span>= <span style="color: rgba(128, 0, 128, 1)">0xA1</span><span style="color: rgba(0, 0, 0, 1)">,
VK_LCONTROL </span>= <span style="color: rgba(128, 0, 128, 1)">0xA2</span><span style="color: rgba(0, 0, 0, 1)">,
VK_RCONTROL </span>= <span style="color: rgba(128, 0, 128, 1)">0xA3</span><span style="color: rgba(0, 0, 0, 1)">,
VK_LMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0xA4</span><span style="color: rgba(0, 0, 0, 1)">,
VK_RMENU </span>= <span style="color: rgba(128, 0, 128, 1)">0xA5</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> PatBlt Types<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> PatBltTypes
{
SRCCOPY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00CC0020</span><span style="color: rgba(0, 0, 0, 1)">,
SRCPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00EE0086</span><span style="color: rgba(0, 0, 0, 1)">,
SRCAND </span>= <span style="color: rgba(128, 0, 128, 1)">0x008800C6</span><span style="color: rgba(0, 0, 0, 1)">,
SRCINVERT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00660046</span><span style="color: rgba(0, 0, 0, 1)">,
SRCERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00440328</span><span style="color: rgba(0, 0, 0, 1)">,
NOTSRCCOPY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00330008</span><span style="color: rgba(0, 0, 0, 1)">,
NOTSRCERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x001100A6</span><span style="color: rgba(0, 0, 0, 1)">,
MERGECOPY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00C000CA</span><span style="color: rgba(0, 0, 0, 1)">,
MERGEPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00BB0226</span><span style="color: rgba(0, 0, 0, 1)">,
PATCOPY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00F00021</span><span style="color: rgba(0, 0, 0, 1)">,
PATPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00FB0A09</span><span style="color: rgba(0, 0, 0, 1)">,
PATINVERT </span>= <span style="color: rgba(128, 0, 128, 1)">0x005A0049</span><span style="color: rgba(0, 0, 0, 1)">,
DSTINVERT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00550009</span><span style="color: rgba(0, 0, 0, 1)">,
BLACKNESS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000042</span><span style="color: rgba(0, 0, 0, 1)">,
WHITENESS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00FF0062</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Clipboard Formats<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> ClipboardFormats : <span style="color: rgba(0, 0, 255, 1)">uint</span><span style="color: rgba(0, 0, 0, 1)">
{
CF_TEXT </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
CF_BITMAP </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
CF_METAFILEPICT </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
CF_SYLK </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
CF_DIF </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
CF_TIFF </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
CF_OEMTEXT </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
CF_DIB </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">,
CF_PALETTE </span>= <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">,
CF_PENDATA </span>= <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
CF_RIFF </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">,
CF_WAVE </span>= <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">,
CF_UNICODETEXT </span>= <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">,
CF_ENHMETAFILE </span>= <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">,
CF_HDROP </span>= <span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">,
CF_LOCALE </span>= <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">,
CF_MAX </span>= <span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">,
CF_OWNERDISPLAY </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">,
CF_DSPTEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0081</span><span style="color: rgba(0, 0, 0, 1)">,
CF_DSPBITMAP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0082</span><span style="color: rgba(0, 0, 0, 1)">,
CF_DSPMETAFILEPICT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0083</span><span style="color: rgba(0, 0, 0, 1)">,
CF_DSPENHMETAFILE </span>= <span style="color: rgba(128, 0, 128, 1)">0x008E</span><span style="color: rgba(0, 0, 0, 1)">,
CF_PRIVATEFIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
CF_PRIVATELAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x02FF</span><span style="color: rgba(0, 0, 0, 1)">,
CF_GDIOBJFIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x0300</span><span style="color: rgba(0, 0, 0, 1)">,
CF_GDIOBJLAST </span>= <span style="color: rgba(128, 0, 128, 1)">0x03FF</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Common Controls Initialization flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> CommonControlInitFlags
{
ICC_LISTVIEW_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_TREEVIEW_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_BAR_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_TAB_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_UPDOWN_CLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_PROGRESS_CLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_HOTKEY_CLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_ANIMATE_CLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000080</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_WIN95_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x000000FF</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_DATE_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000100</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_USEREX_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000200</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_COOL_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000400</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_INTERNET_CLASSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000800</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_PAGESCROLLER_CLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00001000</span><span style="color: rgba(0, 0, 0, 1)">,
ICC_NATIVEFNTCTL_CLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00002000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Common Controls Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> CommonControlStyles
{
CCS_TOP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_NOMOVEY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_BOTTOM </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000003</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_NORESIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_NOPARENTALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_ADJUSTABLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_NODIVIDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_VERT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000080</span><span style="color: rgba(0, 0, 0, 1)">,
CCS_LEFT </span>= (CCS_VERT |<span style="color: rgba(0, 0, 0, 1)"> CCS_TOP),
CCS_RIGHT </span>= (CCS_VERT |<span style="color: rgba(0, 0, 0, 1)"> CCS_BOTTOM),
CCS_NOMOVEX </span>= (CCS_VERT |<span style="color: rgba(0, 0, 0, 1)"> CCS_NOMOVEY)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ToolBar Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarStyles
{
TBSTYLE_BUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_SEP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_CHECK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_GROUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_CHECKGROUP </span>= (TBSTYLE_GROUP |<span style="color: rgba(0, 0, 0, 1)"> TBSTYLE_CHECK),
TBSTYLE_DROPDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_AUTOSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_NOPREFIX </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_TOOLTIPS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_WRAPABLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_ALTDRAG </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_FLAT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0800</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_LIST </span>= <span style="color: rgba(128, 0, 128, 1)">0x1000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_CUSTOMERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x2000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_REGISTERDROP </span>= <span style="color: rgba(128, 0, 128, 1)">0x4000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_TRANSPARENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x8000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_EX_DRAWDDARROWS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ToolBar Ex Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarExStyles
{
TBSTYLE_EX_DRAWDDARROWS </span>= <span style="color: rgba(128, 0, 128, 1)">0x1</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_EX_HIDECLIPPEDBUTTONS </span>= <span style="color: rgba(128, 0, 128, 1)">0x10</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_EX_DOUBLEBUFFER </span>= <span style="color: rgba(128, 0, 128, 1)">0x80</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ToolBar Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarMessages
{
WM_USER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
TB_ENABLEBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
TB_CHECKBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">),
TB_PRESSBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">),
TB_HIDEBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">),
TB_INDETERMINATE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">),
TB_MARKBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ISBUTTONENABLED </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ISBUTTONCHECKED </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ISBUTTONPRESSED </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ISBUTTONHIDDEN </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ISBUTTONINDETERMINATE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ISBUTTONHIGHLIGHTED </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETSTATE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETSTATE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ADDBITMAP </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ADDBUTTONSA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">),
TB_INSERTBUTTONA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ADDBUTTONS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">),
TB_INSERTBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">),
TB_DELETEBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">),
TB_BUTTONCOUNT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">),
TB_COMMANDTOINDEX </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SAVERESTOREA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">),
TB_CUSTOMIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ADDSTRINGA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">28</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETITEMRECT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)">),
TB_BUTTONSTRUCTSIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETBUTTONSIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">31</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETBITMAPSIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">32</span><span style="color: rgba(0, 0, 0, 1)">),
TB_AUTOSIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">33</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETTOOLTIPS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">35</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETTOOLTIPS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">36</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETPARENT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">37</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETROWS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">39</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETROWS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">40</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBITMAPFLAGS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">41</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETCMDID </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">42</span><span style="color: rgba(0, 0, 0, 1)">),
TB_CHANGEBITMAP </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">43</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBITMAP </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">44</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBUTTONTEXTA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">45</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBUTTONTEXTW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">75</span><span style="color: rgba(0, 0, 0, 1)">),
TB_REPLACEBITMAP </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">46</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETINDENT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">47</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETIMAGELIST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">48</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETIMAGELIST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">49</span><span style="color: rgba(0, 0, 0, 1)">),
TB_LOADIMAGES </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETRECT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">51</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETHOTIMAGELIST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">52</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETHOTIMAGELIST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETDISABLEDIMAGELIST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">54</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETDISABLEDIMAGELIST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">55</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETSTYLE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">56</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETSTYLE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">57</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBUTTONSIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">58</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETBUTTONWIDTH </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">59</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETMAXTEXTROWS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">60</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETTEXTROWS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">61</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETOBJECT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">62</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBUTTONINFOW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">63</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETBUTTONINFOW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">64</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETBUTTONINFOA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">65</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETBUTTONINFOA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">66</span><span style="color: rgba(0, 0, 0, 1)">),
TB_INSERTBUTTONW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">67</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ADDBUTTONSW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">68</span><span style="color: rgba(0, 0, 0, 1)">),
TB_HITTEST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">69</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETDRAWTEXTFLAGS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">70</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETHOTITEM </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">71</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETHOTITEM </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">72</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETANCHORHIGHLIGHT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">73</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETANCHORHIGHLIGHT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">74</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SAVERESTOREW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">76</span><span style="color: rgba(0, 0, 0, 1)">),
TB_ADDSTRINGW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">77</span><span style="color: rgba(0, 0, 0, 1)">),
TB_MAPACCELERATORA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">78</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETINSERTMARK </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">79</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETINSERTMARK </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">),
TB_INSERTMARKHITTEST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">81</span><span style="color: rgba(0, 0, 0, 1)">),
TB_MOVEBUTTON </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">82</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETMAXSIZE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">83</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETEXTENDEDSTYLE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">84</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETEXTENDEDSTYLE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">85</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETPADDING </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">86</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETPADDING </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">87</span><span style="color: rgba(0, 0, 0, 1)">),
TB_SETINSERTMARKCOLOR </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">88</span><span style="color: rgba(0, 0, 0, 1)">),
TB_GETINSERTMARKCOLOR </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">89</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ToolBar Notifications<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarNotifications
{
TTN_NEEDTEXTA </span>= ((<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">520</span>) - <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
TTN_NEEDTEXTW </span>= ((<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">520</span>) - <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">),
TBN_QUERYINSERT </span>= ((<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">700</span>) - <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">),
TBN_DROPDOWN </span>= ((<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">700</span>) - <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">),
TBN_HOTITEMCHANGE </span>= ((<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">700</span>) - <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Reflected Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ReflectedMessages
{
OCM__BASE </span>= (WinMsg.WM_USER + <span style="color: rgba(128, 0, 128, 1)">0x1c00</span><span style="color: rgba(0, 0, 0, 1)">),
OCM_COMMAND </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_COMMAND),
OCM_CTLCOLORBTN </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLORBTN),
OCM_CTLCOLOREDIT </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLOREDIT),
OCM_CTLCOLORDLG </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLORDLG),
OCM_CTLCOLORLISTBOX </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLORLISTBOX),
OCM_CTLCOLORWinMsgBOX </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLORWinMsgBOX),
OCM_CTLCOLORSCROLLBAR </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLORSCROLLBAR),
OCM_CTLCOLORSTATIC </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLORSTATIC),
OCM_CTLCOLOR </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CTLCOLOR),
OCM_DRAWITEM </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_DRAWITEM),
OCM_MEASUREITEM </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_MEASUREITEM),
OCM_DELETEITEM </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_DELETEITEM),
OCM_VKEYTOITEM </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_VKEYTOITEM),
OCM_CHARTOITEM </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_CHARTOITEM),
OCM_COMPAREITEM </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_COMPAREITEM),
OCM_HSCROLL </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_HSCROLL),
OCM_VSCROLL </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_VSCROLL),
OCM_PARENTNOTIFY </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_PARENTNOTIFY),
OCM_NOTIFY </span>= (OCM__BASE +<span style="color: rgba(0, 0, 0, 1)"> WinMsg.WM_NOTIFY)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Notification Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> NotificationMessages
{
NM_FIRST </span>= (<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
NM_CUSTOMDRAW </span>= (NM_FIRST - <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">),
NM_NCHITTEST </span>= (NM_FIRST - <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ToolTip Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolTipFlags
{
TTF_CENTERTIP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
TTF_RTLREADING </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
TTF_SUBCLASS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
TTF_TRACK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
TTF_ABSOLUTE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">,
TTF_TRANSPARENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
TTF_DI_SETITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x8000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Custom Draw Return Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> CustomDrawReturnFlags
{
CDRF_DODEFAULT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
CDRF_NEWFONT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
CDRF_SKIPDEFAULT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
CDRF_NOTIFYPOSTPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
CDRF_NOTIFYITEMDRAW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
CDRF_NOTIFYSUBITEMDRAW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
CDRF_NOTIFYPOSTERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Custom Draw Item State Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> CustomDrawItemStateFlags
{
CDIS_SELECTED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_GRAYED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_DISABLED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_CHECKED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_FOCUS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_DEFAULT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_HOT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0040</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_MARKED </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">,
CDIS_INDETERMINATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Custom Draw Draw State Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> CustomDrawDrawStateFlags
{
CDDS_PREPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
CDDS_POSTPAINT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
CDDS_PREERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000003</span><span style="color: rgba(0, 0, 0, 1)">,
CDDS_POSTERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
CDDS_ITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x00010000</span><span style="color: rgba(0, 0, 0, 1)">,
CDDS_ITEMPREPAINT </span>= (CDDS_ITEM |<span style="color: rgba(0, 0, 0, 1)"> CDDS_PREPAINT),
CDDS_ITEMPOSTPAINT </span>= (CDDS_ITEM |<span style="color: rgba(0, 0, 0, 1)"> CDDS_POSTPAINT),
CDDS_ITEMPREERASE </span>= (CDDS_ITEM |<span style="color: rgba(0, 0, 0, 1)"> CDDS_PREERASE),
CDDS_ITEMPOSTERASE </span>= (CDDS_ITEM |<span style="color: rgba(0, 0, 0, 1)"> CDDS_POSTERASE),
CDDS_SUBITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x00020000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Toolbar button info flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarButtonInfoFlags
{
TBIF_IMAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
TBIF_TEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
TBIF_STATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
TBIF_STYLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
TBIF_LPARAM </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
TBIF_COMMAND </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
TBIF_SIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
I_IMAGECALLBACK </span>= -<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
I_IMAGENONE </span>= -<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Toolbar button styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarButtonStyles
{
TBSTYLE_BUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_SEP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_CHECK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_GROUP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_CHECKGROUP </span>= (TBSTYLE_GROUP |<span style="color: rgba(0, 0, 0, 1)"> TBSTYLE_CHECK),
TBSTYLE_DROPDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_AUTOSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_NOPREFIX </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_TOOLTIPS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_WRAPABLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_ALTDRAG </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_FLAT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0800</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_LIST </span>= <span style="color: rgba(128, 0, 128, 1)">0x1000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_CUSTOMERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x2000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_REGISTERDROP </span>= <span style="color: rgba(128, 0, 128, 1)">0x4000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_TRANSPARENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x8000</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTYLE_EX_DRAWDDARROWS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Toolbar button state<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ToolBarButtonStates
{
TBSTATE_CHECKED </span>= <span style="color: rgba(128, 0, 128, 1)">0x01</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_PRESSED </span>= <span style="color: rgba(128, 0, 128, 1)">0x02</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_ENABLED </span>= <span style="color: rgba(128, 0, 128, 1)">0x04</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_HIDDEN </span>= <span style="color: rgba(128, 0, 128, 1)">0x08</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_INDETERMINATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x10</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_WRAP </span>= <span style="color: rgba(128, 0, 128, 1)">0x20</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_ELLIPSES </span>= <span style="color: rgba(128, 0, 128, 1)">0x40</span><span style="color: rgba(0, 0, 0, 1)">,
TBSTATE_MARKED </span>= <span style="color: rgba(128, 0, 128, 1)">0x80</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Windows Hook Codes<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> WindowsHookCodes
{
WH_MSGFILTER </span>= (-<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
WH_JOURNALRECORD </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
WH_JOURNALPLAYBACK </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
WH_KEYBOARD </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
WH_GETMESSAGE </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
WH_CALLWNDPROC </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
WH_CBT </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
WH_SYSMSGFILTER </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
WH_MOUSE </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
WH_HARDWARE </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">,
WH_DEBUG </span>= <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">,
WH_SHELL </span>= <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
WH_FOREGROUNDIDLE </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">,
WH_CALLWNDPROCRET </span>= <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">,
WH_KEYBOARD_LL </span>= <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">,
WH_MOUSE_LL </span>= <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Mouse Hook Filters<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> MouseHookFilters
{
MSGF_DIALOGBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
MSGF_MESSAGEBOX </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
MSGF_MENU </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
MSGF_SCROLLBAR </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
MSGF_NEXTWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Draw Text format flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> DrawTextFormatFlags
{
DT_TOP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_LEFT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_CENTER </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
DT_RIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
DT_VCENTER </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
DT_BOTTOM </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
DT_WORDBREAK </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
DT_SINGLELINE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
DT_EXPANDTABS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
DT_TABSTOP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000080</span><span style="color: rgba(0, 0, 0, 1)">,
DT_NOCLIP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000100</span><span style="color: rgba(0, 0, 0, 1)">,
DT_EXTERNALLEADING </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000200</span><span style="color: rgba(0, 0, 0, 1)">,
DT_CALCRECT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000400</span><span style="color: rgba(0, 0, 0, 1)">,
DT_NOPREFIX </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000800</span><span style="color: rgba(0, 0, 0, 1)">,
DT_INTERNAL </span>= <span style="color: rgba(128, 0, 128, 1)">0x00001000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_EDITCONTROL </span>= <span style="color: rgba(128, 0, 128, 1)">0x00002000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_PATH_ELLIPSIS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00004000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_END_ELLIPSIS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00008000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_MODIFYSTRING </span>= <span style="color: rgba(128, 0, 128, 1)">0x00010000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_RTLREADING </span>= <span style="color: rgba(128, 0, 128, 1)">0x00020000</span><span style="color: rgba(0, 0, 0, 1)">,
DT_WORD_ELLIPSIS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00040000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Rebar Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> RebarStyles
{
RBS_TOOLTIPS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_VARHEIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_BANDBORDERS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_FIXEDORDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0800</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_REGISTERDROP </span>= <span style="color: rgba(128, 0, 128, 1)">0x1000</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_AUTOSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x2000</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_VERTICALGRIPPER </span>= <span style="color: rgba(128, 0, 128, 1)">0x4000</span><span style="color: rgba(0, 0, 0, 1)">,
RBS_DBLCLKTOGGLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x8000</span><span style="color: rgba(0, 0, 0, 1)">,
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Rebar Notifications<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> RebarNotifications
{
RBN_FIRST </span>= (<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">831</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_HEIGHTCHANGE </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_GETOBJECT </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_LAYOUTCHANGED </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_AUTOSIZE </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_BEGINDRAG </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_ENDDRAG </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_DELETINGBAND </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_DELETEDBAND </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_CHILDSIZE </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">),
RBN_CHEVRONPUSHED </span>= (RBN_FIRST - <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Rebar Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> RebarMessages
{
CCM_FIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x2000</span><span style="color: rgba(0, 0, 0, 1)">,
WM_USER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
RB_INSERTBANDA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
RB_DELETEBAND </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBARINFO </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETBARINFO </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBANDINFO </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETBANDINFOA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETPARENT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">),
RB_HITTEST </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETRECT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">),
RB_INSERTBANDW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETBANDINFOW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBANDCOUNT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETROWCOUNT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETROWHEIGHT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">),
RB_IDTOINDEX </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETTOOLTIPS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETTOOLTIPS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETBKCOLOR </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBKCOLOR </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETTEXTCOLOR </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETTEXTCOLOR </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SIZETORECT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETCOLORSCHEME </span>= (CCM_FIRST + <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETCOLORSCHEME </span>= (CCM_FIRST + <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">),
RB_BEGINDRAG </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">),
RB_ENDDRAG </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">),
RB_DRAGMOVE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBARHEIGHT </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBANDINFOW </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">28</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBANDINFOA </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)">),
RB_MINIMIZEBAND </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">),
RB_MAXIMIZEBAND </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">31</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETDROPTARGET </span>= (CCM_FIRST + <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETBANDBORDERS </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">34</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SHOWBAND </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">35</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETPALETTE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">37</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETPALETTE </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">38</span><span style="color: rgba(0, 0, 0, 1)">),
RB_MOVEBAND </span>= (WM_USER + <span style="color: rgba(128, 0, 128, 1)">39</span><span style="color: rgba(0, 0, 0, 1)">),
RB_SETUNICODEFORMAT </span>= (CCM_FIRST + <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">),
RB_GETUNICODEFORMAT </span>= (CCM_FIRST + <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Rebar Info Mask<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> RebarInfoMask
{
RBBIM_STYLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_COLORS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_TEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_IMAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_CHILD </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_CHILDSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_SIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_BACKGROUND </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000080</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_ID </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000100</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_IDEALSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000200</span><span style="color: rgba(0, 0, 0, 1)">,
RBBIM_LPARAM </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000400</span><span style="color: rgba(0, 0, 0, 1)">,
BBIM_HEADERSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000800</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Rebar Styles<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> RebarStylesEx
{
RBBS_BREAK </span>= <span style="color: rgba(128, 0, 128, 1)">0x1</span><span style="color: rgba(0, 0, 0, 1)">,
RBBS_CHILDEDGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x4</span><span style="color: rgba(0, 0, 0, 1)">,
RBBS_FIXEDBMP </span>= <span style="color: rgba(128, 0, 128, 1)">0x20</span><span style="color: rgba(0, 0, 0, 1)">,
RBBS_GRIPPERALWAYS </span>= <span style="color: rgba(128, 0, 128, 1)">0x80</span><span style="color: rgba(0, 0, 0, 1)">,
RBBS_USECHEVRON </span>= <span style="color: rgba(128, 0, 128, 1)">0x200</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Object types<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ObjectTypes
{
OBJ_PEN </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_BRUSH </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_DC </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_METADC </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_PAL </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_FONT </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_BITMAP </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_REGION </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_METAFILE </span>= <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_MEMDC </span>= <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_EXTPEN </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_ENHMETADC </span>= <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">,
OBJ_ENHMETAFILE </span>= <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> WM_MENUCHAR return values<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> MenuCharReturnValues
{
MNC_IGNORE </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
MNC_CLOSE </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
MNC_EXECUTE </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
MNC_SELECT </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Background Mode<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> BackgroundMode
{
TRANSPARENT </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
OPAQUE </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ListView Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ListViewMessages
{
LVM_FIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x1000</span><span style="color: rgba(0, 0, 0, 1)">,
LVM_GETSUBITEMRECT </span>= (LVM_FIRST + <span style="color: rgba(128, 0, 128, 1)">56</span><span style="color: rgba(0, 0, 0, 1)">),
LVM_GETITEMSTATE </span>= (LVM_FIRST + <span style="color: rgba(128, 0, 128, 1)">44</span><span style="color: rgba(0, 0, 0, 1)">),
LVM_GETITEMTEXTW </span>= (LVM_FIRST + <span style="color: rgba(128, 0, 128, 1)">115</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Header Control Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> HeaderControlMessages : <span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)">
{
HDM_FIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x1200</span><span style="color: rgba(0, 0, 0, 1)">,
HDM_GETITEMRECT </span>= (HDM_FIRST + <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">),
HDM_HITTEST </span>= (HDM_FIRST + <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">),
HDM_SETIMAGELIST </span>= (HDM_FIRST + <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">),
HDM_GETITEMW </span>= (HDM_FIRST + <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">),
HDM_ORDERTOINDEX </span>= (HDM_FIRST + <span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Header Control Notifications<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> HeaderControlNotifications
{
HDN_FIRST </span>= (<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">),
HDN_BEGINTRACKW </span>= (HDN_FIRST - <span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">),
HDN_ENDTRACKW </span>= (HDN_FIRST - <span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)">),
HDN_ITEMCLICKW </span>= (HDN_FIRST - <span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">),
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Header Control HitTest Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> HeaderControlHitTestFlags : <span style="color: rgba(0, 0, 255, 1)">uint</span><span style="color: rgba(0, 0, 0, 1)">
{
HHT_NOWHERE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_ONHEADER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_ONDIVIDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_ONDIVOPEN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_ABOVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_BELOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x0200</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_TORIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0400</span><span style="color: rgba(0, 0, 0, 1)">,
HHT_TOLEFT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0800</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> List View sub item portion<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> SubItemPortion
{
LVIR_BOUNDS </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
LVIR_ICON </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
LVIR_LABEL </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Cursor Type<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> CursorType : <span style="color: rgba(0, 0, 255, 1)">uint</span><span style="color: rgba(0, 0, 0, 1)">
{
IDC_ARROW </span>= <span style="color: rgba(128, 0, 128, 1)">32512U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_IBEAM </span>= <span style="color: rgba(128, 0, 128, 1)">32513U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_WAIT </span>= <span style="color: rgba(128, 0, 128, 1)">32514U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_CROSS </span>= <span style="color: rgba(128, 0, 128, 1)">32515U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_UPARROW </span>= <span style="color: rgba(128, 0, 128, 1)">32516U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_SIZE </span>= <span style="color: rgba(128, 0, 128, 1)">32640U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_ICON </span>= <span style="color: rgba(128, 0, 128, 1)">32641U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_SIZENWSE </span>= <span style="color: rgba(128, 0, 128, 1)">32642U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_SIZENESW </span>= <span style="color: rgba(128, 0, 128, 1)">32643U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_SIZEWE </span>= <span style="color: rgba(128, 0, 128, 1)">32644U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_SIZENS </span>= <span style="color: rgba(128, 0, 128, 1)">32645U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_SIZEALL </span>= <span style="color: rgba(128, 0, 128, 1)">32646U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_NO </span>= <span style="color: rgba(128, 0, 128, 1)">32648U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_HAND </span>= <span style="color: rgba(128, 0, 128, 1)">32649U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_APPSTARTING </span>= <span style="color: rgba(128, 0, 128, 1)">32650U</span><span style="color: rgba(0, 0, 0, 1)">,
IDC_HELP </span>= <span style="color: rgba(128, 0, 128, 1)">32651U</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Tracker Event Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> TrackerEventFlags : <span style="color: rgba(0, 0, 255, 1)">uint</span><span style="color: rgba(0, 0, 0, 1)">
{
TME_HOVER </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
TME_LEAVE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
TME_QUERY </span>= <span style="color: rgba(128, 0, 128, 1)">0x40000000</span><span style="color: rgba(0, 0, 0, 1)">,
TME_CANCEL </span>= <span style="color: rgba(128, 0, 128, 1)">0x80000000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Mouse Activate Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> MouseActivateFlags
{
MA_ACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
MA_ACTIVATEANDEAT </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
MA_NOACTIVATE </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
MA_NOACTIVATEANDEAT </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Dialog Codes<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> DialogCodes
{
DLGC_WANTARROWS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_WANTTAB </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_WANTALLKEYS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_WANTMESSAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_HASSETSEL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_DEFPUSHBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_UNDEFPUSHBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_RADIOBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x0040</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_WANTCHARS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_STATIC </span>= <span style="color: rgba(128, 0, 128, 1)">0x0100</span><span style="color: rgba(0, 0, 0, 1)">,
DLGC_BUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">0x2000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Update Layered Windows Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> UpdateLayeredWindowsFlags
{
ULW_COLORKEY </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
ULW_ALPHA </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
ULW_OPAQUE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Alpha Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span> AlphaFlags : <span style="color: rgba(0, 0, 255, 1)">byte</span><span style="color: rgba(0, 0, 0, 1)">
{
AC_SRC_OVER </span>= <span style="color: rgba(128, 0, 128, 1)">0x00</span><span style="color: rgba(0, 0, 0, 1)">,
AC_SRC_ALPHA </span>= <span style="color: rgba(128, 0, 128, 1)">0x01</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ComboBox messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ComboBoxMessages
{
CB_GETDROPPEDSTATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0157</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> SetWindowLong indexes<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> SetWindowLongOffsets
{
GWL_WNDPROC </span>= (-<span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">),
GWL_HINSTANCE </span>= (-<span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">),
GWL_HWNDPARENT </span>= (-<span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">),
GWL_STYLE </span>= (-<span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">),
GWL_EXSTYLE </span>= (-<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">),
GWL_USERDATA </span>= (-<span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">),
GWL_ID </span>= (-<span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> TreeView Messages<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> TreeViewMessages
{
TV_FIRST </span>= <span style="color: rgba(128, 0, 128, 1)">0x1100</span><span style="color: rgba(0, 0, 0, 1)">,
TVM_GETITEMRECT </span>= (TV_FIRST + <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">),
TVM_GETITEMW </span>= (TV_FIRST + <span style="color: rgba(128, 0, 128, 1)">62</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> TreeViewItem Flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> TreeViewItemFlags
{
TVIF_TEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_IMAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_PARAM </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_STATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_HANDLE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_SELECTEDIMAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_CHILDREN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0040</span><span style="color: rgba(0, 0, 0, 1)">,
TVIF_INTEGRAL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ListViewItem flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ListViewItemFlags
{
LVIF_TEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
LVIF_IMAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
LVIF_PARAM </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
LVIF_STATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
LVIF_INDENT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
LVIF_NORECOMPUTE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0800</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> HeaderItem flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> HeaderItemFlags
{
HDI_WIDTH </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_HEIGHT </span>=<span style="color: rgba(0, 0, 0, 1)"> HDI_WIDTH,
HDI_TEXT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_FORMAT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_LPARAM </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_BITMAP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_IMAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_DI_SETITEM </span>= <span style="color: rgba(128, 0, 128, 1)">0x0040</span><span style="color: rgba(0, 0, 0, 1)">,
HDI_ORDER </span>= <span style="color: rgba(128, 0, 128, 1)">0x0080</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> GetDCExFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> GetDCExFlags
{
DCX_WINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000001</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_CACHE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000002</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_NORESETATTRS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000004</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_CLIPCHILDREN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000008</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_CLIPSIBLINGS </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000010</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_PARENTCLIP </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000020</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_EXCLUDERGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000040</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_INTERSECTRGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000080</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_EXCLUDEUPDATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000100</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_INTERSECTUPDATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000200</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_LOCKWINDOWUPDATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00000400</span><span style="color: rgba(0, 0, 0, 1)">,
DCX_VALIDATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x00200000</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> HitTest<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> HitTest
{
HTERROR </span>= (-<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">),
HTTRANSPARENT </span>= (-<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
HTNOWHERE </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
HTCLIENT </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
HTCAPTION </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
HTSYSMENU </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
HTGROWBOX </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
HTSIZE </span>=<span style="color: rgba(0, 0, 0, 1)"> HTGROWBOX,
HTMENU </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
HTHSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
HTVSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
HTMINBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">,
HTMAXBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">,
HTLEFT </span>= <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
HTRIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">,
HTTOP </span>= <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">,
HTTOPLEFT </span>= <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">,
HTTOPRIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">,
HTBOTTOM </span>= <span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">,
HTBOTTOMLEFT </span>= <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">,
HTBOTTOMRIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">,
HTBORDER </span>= <span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">,
HTREDUCE </span>=<span style="color: rgba(0, 0, 0, 1)"> HTMINBUTTON,
HTZOOM </span>=<span style="color: rgba(0, 0, 0, 1)"> HTMAXBUTTON,
HTSIZEFIRST </span>=<span style="color: rgba(0, 0, 0, 1)"> HTLEFT,
HTSIZELAST </span>=<span style="color: rgba(0, 0, 0, 1)"> HTBOTTOMRIGHT,
HTOBJECT </span>= <span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">,
HTCLOSE </span>= <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">,
HTHELP </span>= <span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ActivateFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ActivateState
{
WA_INACTIVE </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
WA_ACTIVE </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
WA_CLICKACTIVE </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> StrechModeFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> StrechModeFlags
{
BLACKONWHITE </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
WHITEONBLACK </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
COLORONCOLOR </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
HALFTONE </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
MAXSTRETCHBLTMODE </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ScrollBarFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ScrollBarFlags
{
SBS_HORZ </span>= <span style="color: rgba(128, 0, 128, 1)">0x0000</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_VERT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_TOPALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_LEFTALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_BOTTOMALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_RIGHTALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_SIZEBOXTOPLEFTALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_SIZEBOXBOTTOMRIGHTALIGN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_SIZEBOX </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
SBS_SIZEGRIP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> System Metrics Codes<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> SystemMetricsCodes
{
SM_CXSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXVSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYHSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYCAPTION </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXBORDER </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYBORDER </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXDLGFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYDLGFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYVTHUMB </span>= <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXHTHUMB </span>= <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXICON </span>= <span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYICON </span>= <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXCURSOR </span>= <span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYCURSOR </span>= <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMENU </span>= <span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXFULLSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYFULLSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYKANJIWINDOW </span>= <span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">,
SM_MOUSEPRESENT </span>= <span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYVSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXHSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">,
SM_DEBUG </span>= <span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">,
SM_SWAPBUTTON </span>= <span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">,
SM_RESERVED1 </span>= <span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">,
SM_RESERVED2 </span>= <span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">,
SM_RESERVED3 </span>= <span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">,
SM_RESERVED4 </span>= <span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMIN </span>= <span style="color: rgba(128, 0, 128, 1)">28</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMIN </span>= <span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">31</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">32</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYFRAME </span>= <span style="color: rgba(128, 0, 128, 1)">33</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMINTRACK </span>= <span style="color: rgba(128, 0, 128, 1)">34</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMINTRACK </span>= <span style="color: rgba(128, 0, 128, 1)">35</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXDOUBLECLK </span>= <span style="color: rgba(128, 0, 128, 1)">36</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYDOUBLECLK </span>= <span style="color: rgba(128, 0, 128, 1)">37</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXICONSPACING </span>= <span style="color: rgba(128, 0, 128, 1)">38</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYICONSPACING </span>= <span style="color: rgba(128, 0, 128, 1)">39</span><span style="color: rgba(0, 0, 0, 1)">,
SM_MENUDROPALIGNMENT </span>= <span style="color: rgba(128, 0, 128, 1)">40</span><span style="color: rgba(0, 0, 0, 1)">,
SM_PENWINDOWS </span>= <span style="color: rgba(128, 0, 128, 1)">41</span><span style="color: rgba(0, 0, 0, 1)">,
SM_DBCSENABLED </span>= <span style="color: rgba(128, 0, 128, 1)">42</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CMOUSEBUTTONS </span>= <span style="color: rgba(128, 0, 128, 1)">43</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXFIXEDFRAME </span>=<span style="color: rgba(0, 0, 0, 1)"> SM_CXDLGFRAME,
SM_CYFIXEDFRAME </span>=<span style="color: rgba(0, 0, 0, 1)"> SM_CYDLGFRAME,
SM_CXSIZEFRAME </span>=<span style="color: rgba(0, 0, 0, 1)"> SM_CXFRAME,
SM_CYSIZEFRAME </span>=<span style="color: rgba(0, 0, 0, 1)"> SM_CYFRAME,
SM_SECURE </span>= <span style="color: rgba(128, 0, 128, 1)">44</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXEDGE </span>= <span style="color: rgba(128, 0, 128, 1)">45</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYEDGE </span>= <span style="color: rgba(128, 0, 128, 1)">46</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMINSPACING </span>= <span style="color: rgba(128, 0, 128, 1)">47</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMINSPACING </span>= <span style="color: rgba(128, 0, 128, 1)">48</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXSMICON </span>= <span style="color: rgba(128, 0, 128, 1)">49</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYSMICON </span>= <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYSMCAPTION </span>= <span style="color: rgba(128, 0, 128, 1)">51</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXSMSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">52</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYSMSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">53</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMENUSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">54</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMENUSIZE </span>= <span style="color: rgba(128, 0, 128, 1)">55</span><span style="color: rgba(0, 0, 0, 1)">,
SM_ARRANGE </span>= <span style="color: rgba(128, 0, 128, 1)">56</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMINIMIZED </span>= <span style="color: rgba(128, 0, 128, 1)">57</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMINIMIZED </span>= <span style="color: rgba(128, 0, 128, 1)">58</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMAXTRACK </span>= <span style="color: rgba(128, 0, 128, 1)">59</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMAXTRACK </span>= <span style="color: rgba(128, 0, 128, 1)">60</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMAXIMIZED </span>= <span style="color: rgba(128, 0, 128, 1)">61</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMAXIMIZED </span>= <span style="color: rgba(128, 0, 128, 1)">62</span><span style="color: rgba(0, 0, 0, 1)">,
SM_NETWORK </span>= <span style="color: rgba(128, 0, 128, 1)">63</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CLEANBOOT </span>= <span style="color: rgba(128, 0, 128, 1)">67</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXDRAG </span>= <span style="color: rgba(128, 0, 128, 1)">68</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYDRAG </span>= <span style="color: rgba(128, 0, 128, 1)">69</span><span style="color: rgba(0, 0, 0, 1)">,
SM_SHOWSOUNDS </span>= <span style="color: rgba(128, 0, 128, 1)">70</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXMENUCHECK </span>= <span style="color: rgba(128, 0, 128, 1)">71</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYMENUCHECK </span>= <span style="color: rgba(128, 0, 128, 1)">72</span><span style="color: rgba(0, 0, 0, 1)">,
SM_SLOWMACHINE </span>= <span style="color: rgba(128, 0, 128, 1)">73</span><span style="color: rgba(0, 0, 0, 1)">,
SM_MIDEASTENABLED </span>= <span style="color: rgba(128, 0, 128, 1)">74</span><span style="color: rgba(0, 0, 0, 1)">,
SM_MOUSEWHEELPRESENT </span>= <span style="color: rgba(128, 0, 128, 1)">75</span><span style="color: rgba(0, 0, 0, 1)">,
SM_XVIRTUALSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">76</span><span style="color: rgba(0, 0, 0, 1)">,
SM_YVIRTUALSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">77</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CXVIRTUALSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">78</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CYVIRTUALSCREEN </span>= <span style="color: rgba(128, 0, 128, 1)">79</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CMONITORS </span>= <span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">,
SM_SAMEDISPLAYFORMAT </span>= <span style="color: rgba(128, 0, 128, 1)">81</span><span style="color: rgba(0, 0, 0, 1)">,
SM_CMETRICS </span>= <span style="color: rgba(128, 0, 128, 1)">83</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ScrollBarTypes<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ScrollBarTypes
{
SB_HORZ </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
SB_VERT </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
SB_CTL </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
SB_BOTH </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> SrollBarInfoFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ScrollBarInfoFlags
{
SIF_RANGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
SIF_PAGE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
SIF_POS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
SIF_DISABLENOSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
SIF_TRACKPOS </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
SIF_ALL </span>= (SIF_RANGE | SIF_PAGE | SIF_POS |<span style="color: rgba(0, 0, 0, 1)"> SIF_TRACKPOS)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Enable ScrollBar flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> EnableScrollBarFlags
{
ESB_ENABLE_BOTH </span>= <span style="color: rgba(128, 0, 128, 1)">0x0000</span><span style="color: rgba(0, 0, 0, 1)">,
ESB_DISABLE_BOTH </span>= <span style="color: rgba(128, 0, 128, 1)">0x0003</span><span style="color: rgba(0, 0, 0, 1)">,
ESB_DISABLE_LEFT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
ESB_DISABLE_RIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
ESB_DISABLE_UP </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
ESB_DISABLE_DOWN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
ESB_DISABLE_LTUP </span>=<span style="color: rgba(0, 0, 0, 1)"> ESB_DISABLE_LEFT,
ESB_DISABLE_RTDN </span>=<span style="color: rgba(0, 0, 0, 1)"> ESB_DISABLE_RIGHT
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> Scroll Requests<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ScrollBarRequests
{
SB_LINEUP </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
SB_LINELEFT </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
SB_LINEDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
SB_LINERIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
SB_PAGEUP </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
SB_PAGELEFT </span>= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
SB_PAGEDOWN </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
SB_PAGERIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
SB_THUMBPOSITION </span>= <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">,
SB_THUMBTRACK </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
SB_TOP </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
SB_LEFT </span>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">,
SB_BOTTOM </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
SB_RIGHT </span>= <span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">,
SB_ENDSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> SrollWindowEx flags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ScrollWindowExFlags
{
SW_SCROLLCHILDREN </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
SW_INVALIDATE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0002</span><span style="color: rgba(0, 0, 0, 1)">,
SW_ERASE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
SW_SMOOTHSCROLL </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> ImageListFlags<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ImageListFlags
{
ILC_MASK </span>= <span style="color: rgba(128, 0, 128, 1)">0x0001</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLOR </span>= <span style="color: rgba(128, 0, 128, 1)">0x0000</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLORDDB </span>= <span style="color: rgba(128, 0, 128, 1)">0x00FE</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLOR4 </span>= <span style="color: rgba(128, 0, 128, 1)">0x0004</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLOR8 </span>= <span style="color: rgba(128, 0, 128, 1)">0x0008</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLOR16 </span>= <span style="color: rgba(128, 0, 128, 1)">0x0010</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLOR24 </span>= <span style="color: rgba(128, 0, 128, 1)">0x0018</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_COLOR32 </span>= <span style="color: rgba(128, 0, 128, 1)">0x0020</span><span style="color: rgba(0, 0, 0, 1)">,
ILC_PALETTE </span>= <span style="color: rgba(128, 0, 128, 1)">0x0800</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">#region</span> List View Notifications<span style="color: rgba(0, 0, 0, 1)">
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">enum</span><span style="color: rgba(0, 0, 0, 1)"> ListViewNotifications
{
LVN_FIRST </span>= (<span style="color: rgba(128, 0, 128, 1)">0</span> - <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">),
LVN_GETDISPINFOW </span>= (LVN_FIRST - <span style="color: rgba(128, 0, 128, 1)">77</span><span style="color: rgba(0, 0, 0, 1)">),
LVN_SETDISPINFOA </span>= (LVN_FIRST - <span style="color: rgba(128, 0, 128, 1)">51</span><span style="color: rgba(0, 0, 0, 1)">)
}
</span><span style="color: rgba(0, 0, 255, 1)">#endregion</span><span style="color: rgba(0, 0, 0, 1)">
}</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">3.启动测试 :用户自己测试热插拔</span></p>
<p> </p>
<h3><span style="font-size: 18pt">串口接收数据</span></h3>
<p><span style="font-size: 18pt">1.拖拽上来一个TextBox</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229125626346-411960628.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">2.点击TextBox上面的箭头,选择MultiLine (允许显示多行)</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229125721116-1234001813.png" alt=""></span></p>
<p> </p>
<p><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229125812006-1977582248.png" alt=""></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"> 2.拖拽TextBox使其达到自己满意的长宽,</span></p>
<p><span style="font-size: 24px">设置TextBox的Scrollbars属性为Vertical (显示竖直滚动条,可以滚动显示接收数据)</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229130256500-867755828.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">3.为了更好看些,设置TextBox的背景色为黑色 (Black) </span></p>
<p><span style="font-size: 24px">显示的字体颜色为草绿色 (LawnGreen)</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229130728210-362738161.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">4.选择serialPort1 -> 选择事件 -> 双击DataReceived</span></p>
<p><span style="font-size: 24px">生成串口接收回调函数</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229141014464-1443837559.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229142422532-838891246.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">5.在回调函数中接收数据,然后把接收数据显示在TextBox</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229142723316-236014737.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">int</span> len = serialPort1.BytesToRead;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取可以读取的字节数</span>
<span style="color: rgba(0, 0, 255, 1)">byte</span>[] buff = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建缓存数据数组</span>
serialPort1.Read(buff, <span style="color: rgba(128, 0, 128, 1)">0</span>, len);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">把数据读取到buff数组</span>
<span style="color: rgba(0, 0, 255, 1)">string</span> str = Encoding.Default.GetString(buff);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Byte值根据ASCII码表转为 String</span>
Invoke((<span style="color: rgba(0, 0, 255, 1)">new</span> Action(() => <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">C# 3.0以后代替委托的新方法</span>
<span style="color: rgba(0, 0, 0, 1)"> {
textBox1.AppendText(str);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">对话框追加显示数据</span>
})));</pre>
</div>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">6.测试接收数据</span></p>
<p><span style="font-size: 24px">为了测试接收数据,可以安装虚拟串口软件</span></p>
<p><span style="font-size: 18pt">https://qqqqqbucket.oss-cn-beijing.aliyuncs.com/LearnC%23/VSPD6.9.zip</span></p>
<p><span style="font-size: 24px">安装好以后</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229143029270-120683435.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229143053067-683173803.png" alt=""></span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">提示:</span></p>
<p><span style="font-size: 24px">按照上面的操作以后</span></p>
<p><span style="font-size: 24px">电脑上便会有了COM1和COM2</span></p>
<p><span style="font-size: 24px">COM1发送的数据将会自动发送给COM2</span></p>
<p><span style="font-size: 24px">COM2发送的数据将会自动发送给COM1</span></p>
<p> </p>
<p><span style="font-size: 24px">7.测试</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229143519989-1716786029.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229143557563-1090533257.png" alt=""></span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">8.增加选择16进制显示(CheckBox),增加数据清除按钮</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229143944664-923618436.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">9.关于显示字符串和显示16进制说明</span></p>
<p> </p>
<p><span style="font-size: 24px">在上面的测试接收中COM1那个串口调试助手发送的</span></p>
<p><span style="font-size: 24px">数据为字符串 123456</span></p>
<p><span style="font-size: 24px">实际传输是按照ASCii码表传输的对应的16进制</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229144612380-913874957.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">实际上buff数组</span></p>
<p><span style="font-size: 24px">buff = 49 = 0x31</span></p>
<p><span style="font-size: 24px">执行 string str = Encoding.Default.GetString(buff); </span><span style="font-size: 24px">以后</span></p>
<p><span style="font-size: 24px">str = 0 (字符串0)</span></p>
<p><span style="font-size: 24px">所以接收显示为:123456</span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">当COM1选择16进制传输的时候</span></p>
<p><span style="font-size: 24px">假设传输的是0x01 0x02 0x03 0x04 0x05 0x06</span></p>
<p><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229145011750-531400840.png" alt=""></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">COM1实际发送也是:0x01 0x02 0x03 0x04 0x05 0x06</span></p>
<p><span style="font-size: 24px">不过ASCII码表中显示的字符是乱码</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229145144809-755865378.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">所以咱们需要另外添加转换程序</span></p>
<p><span style="font-size: 24px">程序如下:</span></p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><字节数组转16进制字符串></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><param name="bytes"></param></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><returns></span><span style="color: rgba(0, 128, 0, 1)"> String 16进制显示形式</span><span style="color: rgba(128, 128, 128, 1)"></returns></span>
<span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">string</span> byteToHexStr(<span style="color: rgba(0, 0, 255, 1)">byte</span><span style="color: rgba(0, 0, 0, 1)">[] bytes)
{
</span><span style="color: rgba(0, 0, 255, 1)">string</span> returnStr = <span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (bytes != <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">)
{
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">int</span> i = <span style="color: rgba(128, 0, 128, 1)">0</span>; i < bytes.Length; i++<span style="color: rgba(0, 0, 0, 1)">)
{
returnStr </span>+= bytes.ToString(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">X2</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
returnStr </span>+= <span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">两个16进制用空格隔开,方便看数据</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnStr;
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (Exception)
{
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnStr;
}
}</span></pre>
</div>
<p> </p>
<p><span style="font-size: 24px">实际上就一句话:</span></p>
<p><span style="font-size: 24px">bytes.ToString("X2"); </span></p>
<p><span style="font-size: 24px">如果变量是 0x01</span></p>
<p><span style="font-size: 24px">则经过函数以后会返回 "01" ,字符串形式</span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">10.如果用户选择16进制,则接收的数据按照16进制显示</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229150117456-254827871.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">void</span> serialPort1_DataReceived(<span style="color: rgba(0, 0, 255, 1)">object</span><span style="color: rgba(0, 0, 0, 1)"> sender, SerialDataReceivedEventArgs e)
{
</span><span style="color: rgba(0, 0, 255, 1)">int</span> len = serialPort1.BytesToRead;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取可以读取的字节数</span>
<span style="color: rgba(0, 0, 255, 1)">byte</span>[] buff = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建缓存数据数组</span>
serialPort1.Read(buff, <span style="color: rgba(128, 0, 128, 1)">0</span>, len);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">把数据读取到buff数组</span>
<span style="color: rgba(0, 0, 0, 1)">
Invoke((</span><span style="color: rgba(0, 0, 255, 1)">new</span> Action(() =>{<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">C# 3.0以后代替委托的新方法</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (checkBox1.Checked){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">16进制显示</span>
<span style="color: rgba(0, 0, 0, 1)"> textBox1.AppendText(byteToHexStr(buff));
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
textBox1.AppendText(Encoding.Default.GetString(buff));</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">对话框追加显示数据</span>
<span style="color: rgba(0, 0, 0, 1)"> }
})));
}
</span><span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><字节数组转16进制字符串></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><param name="bytes"></param></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><returns></span><span style="color: rgba(0, 128, 0, 1)"> String 16进制显示形式</span><span style="color: rgba(128, 128, 128, 1)"></returns></span>
<span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">string</span> byteToHexStr(<span style="color: rgba(0, 0, 255, 1)">byte</span><span style="color: rgba(0, 0, 0, 1)">[] bytes)
{
</span><span style="color: rgba(0, 0, 255, 1)">string</span> returnStr = <span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (bytes != <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (<span style="color: rgba(0, 0, 255, 1)">int</span> i = <span style="color: rgba(128, 0, 128, 1)">0</span>; i < bytes.Length; i++<span style="color: rgba(0, 0, 0, 1)">){
returnStr </span>+= bytes.ToString(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">X2</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
returnStr </span>+= <span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">两个16进制用空格隔开,方便看数据</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnStr;
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (Exception){
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnStr;
}
}</span></pre>
</div>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">11.测试</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229150244342-706990450.png" alt=""></span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229150332532-1641698773.png" alt=""></span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">12.双击清除接收按钮,生成按钮点击事件</span></p>
<p><span style="font-size: 24px">写上 textBox1.Clear(); //清除接收对话框显示的数据</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229150528634-1834227931.png" alt=""></span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229150543327-1205305391.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">串口发送数据</span></h3>
<p><span style="font-size: 18pt">1.</span><span style="font-size: 24px">页面布局如下:</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229151713568-1337765207.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">2.双击点击发送按钮,生成按钮点击事件</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229151959116-135113698.png" alt=""></span></p>
<p><span style="font-size: 18pt">3.事件函数中,程序如下</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229152659402-25968386.png" alt=""></span></p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> String Str = textBox2.Text.ToString();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取发送文本框里面的数据</span>
<span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (Str.Length > <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
{
serialPort1.Write(Str);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">串口发送数据</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span> (Exception){ }</pre>
</div>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">4.测试发送数据</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229152817509-841054681.png" alt=""></span></p>
<p> </p>
<p> <img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229152842904-796813527.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">5.发送16进制数据说明</span></p>
<p><span style="font-size: 24px">首先需要明确</span></p>
<p><span style="font-size: 24px"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229153914769-586466451.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">假设文本框里面填写的是:01 02 03 04 05 06</span></p>
<p><span style="font-size: 24px">Str获取的是01 02 03 04 05 06 是字符串</span></p>
<p><span style="font-size: 24px">咱所希望的是把01转为0x01</span></p>
<p><span style="font-size: 24px">02转为0x02</span></p>
<p><span style="font-size: 24px">.</span></p>
<p><span style="font-size: 24px">.</span></p>
<p><span style="font-size: 24px">.</span></p>
<p><span style="font-size: 24px">然后发送</span></p>
<p> </p>
<p><span style="font-size: 24px">首先先说思路</span></p>
<p><span style="font-size: 24px">默认把文本框每隔两个字符作为一个16进制数</span></p>
<p><span style="font-size: 24px">假设文本框中是</span></p>
<p><span style="font-size: 24px">010203040506 (偶数个数据)</span></p>
<p><span style="font-size: 24px">则01 ,02 ,03 ,04 ,05 ,06 分别作为16进制</span></p>
<p> </p>
<p><span style="font-size: 24px">如果文本框中的字符个数是奇数个</span></p>
<p><span style="font-size: 24px">1115268</span></p>
<p><span style="font-size: 24px">则默认先把前面每隔两个作为一个16进制数</span></p>
<p><span style="font-size: 24px">最后一个数前面补零</span></p>
<p><span style="font-size: 24px">0x11,0x15,0x26,0x08</span></p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">封装的解析转换程序如下:</span></p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><字符串转16进制格式,不够自动前面补零></span>
<span style="color: rgba(128, 128, 128, 1)">///</span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"></summary></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><param name="hexString"></param></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><returns></returns></span>
<span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">byte</span><span style="color: rgba(0, 0, 0, 1)">[] strToToHexByte(String hexString)
{
</span><span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> i;
hexString </span>= hexString.Replace(<span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">""</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">清除空格</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> ((hexString.Length % <span style="color: rgba(128, 0, 128, 1)">2</span>) != <span style="color: rgba(128, 0, 128, 1)">0</span>)<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">奇数个</span>
<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 0, 255, 1)">byte</span>[] returnBytes = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>[(hexString.Length + <span style="color: rgba(128, 0, 128, 1)">1</span>) / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">];
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (i = <span style="color: rgba(128, 0, 128, 1)">0</span>; i < (hexString.Length - <span style="color: rgba(128, 0, 128, 1)">1</span>) / <span style="color: rgba(128, 0, 128, 1)">2</span>; i++<span style="color: rgba(0, 0, 0, 1)">)
{
returnBytes </span>= Convert.ToByte(hexString.Substring(i * <span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">2</span>), <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">);
}
returnBytes = Convert.ToByte(hexString.Substring(hexString.Length - <span style="color: rgba(128, 0, 128, 1)">1</span>, <span style="color: rgba(128, 0, 128, 1)">1</span>).PadLeft(<span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">'</span>), <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)">
{
MessageBox.Show(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">含有非16进制字符</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">提示</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnBytes;
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">byte</span>[] returnBytes = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>[(hexString.Length) / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">];
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (i = <span style="color: rgba(128, 0, 128, 1)">0</span>; i < returnBytes.Length; i++<span style="color: rgba(0, 0, 0, 1)">)
{
returnBytes </span>= Convert.ToByte(hexString.Substring(i * <span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">2</span>), <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">);
}
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)">
{
MessageBox.Show(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">含有非16进制字符</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">提示</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnBytes;
}
}</span></pre>
</div>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">6.完善发送16进制程序</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229155319142-432807165.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">void</span> button3_Click(<span style="color: rgba(0, 0, 255, 1)">object</span><span style="color: rgba(0, 0, 0, 1)"> sender, EventArgs e)
{
String Str </span>= textBox2.Text.ToString();<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取发送文本框里面的数据</span>
<span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (Str.Length > <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
{
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (checkBox2.Checked)<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">16进制发送</span>
<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 0, 255, 1)">byte</span>[] byt =<span style="color: rgba(0, 0, 0, 1)"> strToToHexByte(Str);
serialPort1.Write(byt, </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">, byt.Length);
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
{
serialPort1.Write(Str);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">串口发送数据</span>
<span style="color: rgba(0, 0, 0, 1)"> }
}
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (Exception){ }
}
</span><span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><字符串转16进制格式,不够自动前面补零></span>
<span style="color: rgba(128, 128, 128, 1)">///</span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"></summary></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><param name="hexString"></param></span>
<span style="color: rgba(128, 128, 128, 1)">///</span> <span style="color: rgba(128, 128, 128, 1)"><returns></returns></span>
<span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">byte</span><span style="color: rgba(0, 0, 0, 1)">[] strToToHexByte(String hexString)
{
</span><span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> i;
hexString </span>= hexString.Replace(<span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">""</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">清除空格</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> ((hexString.Length % <span style="color: rgba(128, 0, 128, 1)">2</span>) != <span style="color: rgba(128, 0, 128, 1)">0</span>)<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">奇数个</span>
<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 0, 255, 1)">byte</span>[] returnBytes = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>[(hexString.Length + <span style="color: rgba(128, 0, 128, 1)">1</span>) / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">];
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (i = <span style="color: rgba(128, 0, 128, 1)">0</span>; i < (hexString.Length - <span style="color: rgba(128, 0, 128, 1)">1</span>) / <span style="color: rgba(128, 0, 128, 1)">2</span>; i++<span style="color: rgba(0, 0, 0, 1)">)
{
returnBytes </span>= Convert.ToByte(hexString.Substring(i * <span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">2</span>), <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">);
}
returnBytes = Convert.ToByte(hexString.Substring(hexString.Length - <span style="color: rgba(128, 0, 128, 1)">1</span>, <span style="color: rgba(128, 0, 128, 1)">1</span>).PadLeft(<span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">'</span>), <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">);
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)">
{
MessageBox.Show(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">含有非16进制字符</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">提示</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnBytes;
}
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">byte</span>[] returnBytes = <span style="color: rgba(0, 0, 255, 1)">new</span> <span style="color: rgba(0, 0, 255, 1)">byte</span>[(hexString.Length) / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">];
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">
{
</span><span style="color: rgba(0, 0, 255, 1)">for</span> (i = <span style="color: rgba(128, 0, 128, 1)">0</span>; i < returnBytes.Length; i++<span style="color: rgba(0, 0, 0, 1)">)
{
returnBytes </span>= Convert.ToByte(hexString.Substring(i * <span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">2</span>), <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">);
}
}
</span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)">
{
MessageBox.Show(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">含有非16进制字符</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">提示</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> returnBytes;
}
}</span></pre>
</div>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">7.测试</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229155517139-820815610.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229155536047-816563455.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 18pt">8.双击 清除发送 按钮,生成按钮点击事件</span></p>
<p><span style="font-size: 18pt">textBox2.Clear();//清除发送文本框里面的内容</span></p>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229155723045-58666319.png" alt=""></span></p>
<p> <img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229155739463-2023517583.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<h3><span style="font-size: 18pt">提醒</span></h3>
<h3><span style="font-size: 18pt">提醒</span></h3>
<h3><span style="font-size: 18pt">提醒</span></h3>
<p><span style="font-size: 18pt"><img src="https://img2018.cnblogs.com/i-beta/819239/202002/819239-20200229155911281-1734894275.png" alt=""></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><span style="font-size: 24px">C#的串口中断回调函数也是不定个数的进入</span></p>
<p><span style="font-size: 24px">假设另一个串口发送的数据为 123456</span></p>
<p><span style="font-size: 18pt"> int len = serialPort1.BytesToRead;//获取可以读取的字节数</span><br><span style="font-size: 18pt"> byte[] buff = new byte;//创建缓存数据数组</span></p>
<p><span style="font-size: 18pt">serialPort1.Read(buff, 0, len);//把数据读取到buff数组</span></p>
<p> </p>
<p><span style="font-size: 24px">len 可能等于 2</span></p>
<p><span style="font-size: 24px">则存入buff 的数据为 </span></p>
<p><span style="font-size: 24px">buff = '1'</span></p>
<p><span style="font-size: 24px">buff = '2'</span></p>
<p> </p>
<p><span style="font-size: 24px">然后接着又进来这个函数</span></p>
<p><span style="font-size: 24px">len 可能等于 4</span></p>
<p><span style="font-size: 18pt">则存入buff 的数据为 </span></p>
<p><span style="font-size: 18pt">buff = '3'</span></p>
<p><span style="font-size: 18pt">buff = '4'</span></p>
<p><span style="font-size: 18pt">buff = '5'</span></p>
<p><span style="font-size: 18pt">buff = '6'</span></p>
<p> </p>
<p><span style="font-size: 24px">如若想接收到一条完整的数据以后再进行处理</span></p>
<p><span style="font-size: 24px">可参考: https://www.cnblogs.com/yangfengwu/p/11669373.html</span></p>
<p> </p>
<p><span style="font-size: 18pt">增加一个定时器,用于空闲时间检测</span></p>
<p> </p><br><br>
来源:https://www.cnblogs.com/yangfengwu/p/12382103.html
頁:
[1]