demonstrates some events received by form.
#define TRACE
#include <xtd/forms/application>
#include <xtd/forms/trace_form>
#include <xtd/forms/form>
#include <xtd/forms/window_messages>
#include <xtd/ctrace>
using namespace std;
class form1 :
public form {
public:
form1() {
text("Form and Messages");
}
protected:
template<typename type_t>
inline static uint16 LOWORD(type_t value) {
return static_cast<uint16>(
static_cast<uint32>(value) & 0xFFFF);
}
template<typename type_t>
inline static uint16 HIWORD(type_t value) {
return static_cast<uint16>((
static_cast<uint32>(value) >> 16) & 0xFFFF);
}
case WM_ACTIVATE: ctrace << ustring::format(
"WM_ACTIVATE [activate={}]", as<bool>(
message.
lparam())) << endl;
break;
case WM_ACTIVATEAPP: ctrace << ustring::format(
"WM_ACTIVATEAPP [activate={}, threat={}]", as<bool>(
message.
wparam()),
message.
lparam()) << endl;
break;
case WM_CANCELMODE: ctrace << "WM_CANCELMODE" << endl; break;
case WM_CHILDACTIVATE: ctrace << "WM_CHILDACTIVATE" << endl; break;
case WM_CLOSE: ctrace << "WM_CLOSE" << endl; break;
case WM_COMMAND: ctrace << ustring::format(
"WM_COMMAND [type=0x{:X8}, control={}]",
message.
wparam(),
message.
lparam()) << endl;
break;
case WM_CREATE: ctrace << ustring::format(
"WM_CREATE [CREATESTRUCT={}]",
message.
lparam()) << endl;
break;
case WM_DESTROY: ctrace << "WM_DESTROY" << endl; break;
case WM_ENTERSIZEMOVE: ctrace << "WM_ENTERSIZEMOVE" << endl; break;
case WM_ERASEBKGND: ctrace << "WM_ERASEBKGNDT" << endl; break;
case WM_EXITSIZEMOVE: ctrace << "WM_EXITSIZEMOVE" << endl; break;
case WM_GETTEXTLENGTH: ctrace << "WM_GETTEXTLENGTH" << endl; break;
case WM_KILLFOCUS: ctrace << "WM_KILLFOCUS" << endl; break;
case WM_MOVE: ctrace << ustring::format(
"WM_MOVE [x={}, y={}]", LOWORD(
message.
lparam()), HIWORD(
message.
lparam())) << endl;
break;
case WM_MOUSEENTER: ctrace << "WM_MOUSEENTER" << endl; break;
case WM_MOUSELEAVE: ctrace << "WM_MOUSELEAVE" << endl; break;
case WM_PAINT: ctrace << "WM_PAINT" << endl; break;
case WM_SETFOCUS: ctrace << "WM_SETFOCUS" << endl; break;
case WM_SETTEXT: ctrace << ustring::format(
"WM_SETTEXT [text=\"{}\"]",
reinterpret_cast<char*
>(
message.
lparam())) << endl;
break;
case WM_SHOWWINDOW: ctrace << ustring::format(
"WM_SHOWWINDOW [show={}]", as<bool>(
message.
wparam())) << endl;
break;
case WM_APPIDLE: break;
default: ctrace << ustring::format(
"[{}]",
message) << endl;
break;
}
}
};
auto main()->int {
application::run(form1 {});
}
uint_least16_t uint16
Represents a 16-bit unsigned integer.
Definition types.h:230
uint_least32_t uint32
Represents a 32-bit unsigned integer.
Definition types.h:241
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10