91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

wpf怎么自定義窗體消息

wpf
小億
85
2024-06-07 18:46:36
欄目: 編程語言

在WPF中,可以通過重寫窗體類的方法來自定義窗體消息。以下是一個示例:

  1. 創建一個自定義窗體類,繼承自Window類:
public class CustomWindow : Window
{
    // 重寫WndProc方法處理窗體消息
    protected override void OnSourceInitialized(EventArgs e)
    {
        base.OnSourceInitialized(e);

        HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
        if (hwndSource != null)
        {
            hwndSource.AddHook(new HwndSourceHook(WndProc));
        }
    }

    private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
    {
        // 自定義處理窗體消息的邏輯
        switch (msg)
        {
            case WM_CLOSE:
                // 自定義處理窗體關閉的邏輯
                MessageBox.Show("窗體關閉消息被攔截!");
                handled = true;
                break;
        }

        return IntPtr.Zero;
    }

    // 定義窗體消息常量
    private const int WM_CLOSE = 0x0010;
}
  1. 在XAML中使用自定義窗體類:
<local:CustomWindow x:Class="MyApp.MainWindow"
                    xmlns:local="clr-namespace:MyApp"
                    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    Title="MainWindow" Height="450" Width="800">
    <!-- 窗體內容 -->
</local:CustomWindow>

通過重寫WndProc方法和處理窗體消息常量,可以自定義窗體的消息處理邏輯,實現更靈活的窗體行為。

0
临洮县| 迭部县| 太仆寺旗| 宁强县| 华亭县| 白玉县| 灌南县| 罗山县| 遂平县| 万载县| 资讯| 金秀| 禹州市| 门源| 独山县| 高碑店市| 巴南区| 白水县| 呈贡县| 思茅市| 噶尔县| 资源县| 龙里县| 万载县| 鲜城| 达尔| 秭归县| 三明市| 阿勒泰市| 横峰县| 阳泉市| 昭通市| 新津县| 西丰县| 荥经县| 肇东市| 永靖县| 正蓝旗| 平度市| 镇康县| 景洪市|