如何将lparam值转换为我传递的类型
how to convert LPARAM value to the type I passed
在我的C 代码中,我定义了一条消息,以告知其他类采取一些操作。代码如下:
在mainfrm.h中:
...
afx_msg LRESULT OnHandleDialog(WPARAM wParam, LPARAM lParam);
...
在mainfrm.cpp中
LRESULT CMainFrame::OnHandleDialog(WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case Define::myCondition:
{
myFunction->doSomethingHere(static_cast<bool>(lParam)); //there is warning C4800: 'LPARAM' : forcing value to bool 'true' or 'false' (performance warning)
return 0;
}
}
return 0;
}
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
...
ON_MESSAGE(WM_DEFINED_DIALOG, OnHandleDialog) //My Message Mapping here
....
END_MESSAGE_MAP()
在另一个文件中,mycode.h
void sendDefinedMsg(DWORD_PTR wParam, DWORD_PTR data = 0)
{
pNotifyWnd->PostMessage(WM_DEFINED_DIALOG, wParam, data);
}
在另一个文件中,mycode.cpp
sendDefinedMsg( myCondition, false);
....
sendDefinedMsg( myCondition, true);
....
因此,您可以在上面的代码中看到,我想在此处获取消息参数:
myFunction->doSomethingHere(static_cast<bool>(lParam));
问题是:无论我将LPARAM lParam
施放到什么,使用static_cast<bool>
或reinterpret_cast<bool>
或(bool)
。他们都给我一个警告:
警告c4800:'lparam':强迫价值bool'true'或'false'(性能警告(
所以我的问题是:我应该如何将lParam
施加到我的原始传递参数true
/false
?
我对我的代码进行以下更改以实现我的目标:
在另一个文件中,mycode.cpp
sendDefinedMsg( myCondition, static_cast<DWORD_PTR>(0));
....
sendDefinedMsg( myCondition, static_cast<DWORD_PTR>(1));
....
在消息处理代码中,一些以下更改:
bool curValue = static_cast<DWORD_PTR>(lParam) == 0 ? false : true;
myFunction->doSomethingHere(curValue);
然后警告消失了,价值是正确的。
实际上现在通过TRUE/FALSE应该没问题。也许有人告诉我如何通过其他类型的价值观,例如。字符串或int等。
我只输入时没有警告:
bool curValue = lParam;
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 在 C++(和 C)中进行类型转换时明显不一致
- 字符类型转换不兼容
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- C++:用户定义的显式类型转换函数错误
- 将类指针类型转换为键时出错
- 通过引用传递参数时C++类型转换
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- C++无效的函数类型转换
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 如何将Windows产品类型转换为名称?
- 通过构造函数方法输出的类到类类型转换是 5500 为什么不是 5555
- 事件系统:使用类型转换或联合进行继承
- 如何在参数中定义隐式类型转换的构造函数?
- 类模板实例化中的类型转换