c++-winrt - C++/winRT xaml 键盘事件处理程序
问题描述
以下内容在编译时会产生“1 unresolved externals ...”我的问题是 - 什么是正确的参数?
using namespace winrt;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Input;
xaml
KeyDown="Keyboard_keyDown"
.h
void Keyboard_keyDown(Windows::Foundation::IInspectable const& sender,
Windows::UI::Xaml::Input::KeyRoutedEventArgs e);
.cpp
void SettingsPage::Keyboard_keyDown(IInspectable const& sender,
Windows::UI::Xaml::Input::KeyRoutedEventArgs e) {...}
主页.xaml
<Page
x:Class="BlankAppKeypaderror.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:BlankAppKeypaderror"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
KeyDown="Keyboard_keyDown"
>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" Click="ClickHandler">Click Me</Button>
</StackPanel>
主页.h
编译用一次
包括“MainPage.gh”
命名空间 winrt::DemoProblemApp::implementation { struct MainPage : MainPageT { MainPage();
int32_t MyProperty(); void MyProperty(int32_t value); void Keyboard_keyDown(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs e); void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); }; }
命名空间 winrt::DemoProblemApp::factory_implementation { struct MainPage : MainPageT { }; }
主页.cpp
#include "pch.h"
#include "MainPage.h"
using namespace winrt;
using namespace Windows::UI::Xaml;
namespace winrt::DemoProblemApp::implementation {
MainPage::MainPage() {
InitializeComponent();
}
int32_t MainPage::MyProperty() {
throw hresult_not_implemented();
}
void MainPage::MyProperty(int32_t /* value */) {
throw hresult_not_implemented();
}
void MainPage::ClickHandler(IInspectable const&, RoutedEventArgs const&) {
myButton().Content(box_value(L"Clicked"));
}
void MainPage::Keyboard_keyDown(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs e) {
}
}
我将处理程序 (,h & ,cpp) 更改为以下内容并且存在问题: void Keyboard_KeyDown(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e);
2018-1207 - 将其包含在 .h 文件中
包括
解决方案
.H 文件中缺少此内容
#include <winrt/Windows.UI.Xaml.Input.h>
推荐阅读
- node.js - Gatsby 开发/构建时有什么方法可以显示警告?
- terminal - 如何将终端的光标从块更改为闪烁的垂直条?
- php - 未能在会话中存储 CSRF 令牌!可能会话无法正常工作
- python - 在 Django 中显示来自 Id 的 img
- python - lmfit does not fit the only parameter on a simple example that returns a single scalar value
- sql-server - Windows 操作系统升级后应用程序的 SQL Server 2017 文件流失败
- python - 在 Python 中安装 qmcpy
- php - if($_SERVER['REQUEST_METHOD'] == 'POST') 不起作用
- r - 包或命名空间加载失败,vctrs 包未正确安装
- python - 如何使用 sage 找到 spqr 树?