我想用c ++创建一个ListView.我的代码到目前为止:
InitCommonControls(); // Force the common controls DLL to be loaded.
HWND list;
// window is a handle to my window that is already created.
list = CreateWindowEx(0, (LPCSTR) WC_LISTVIEWW, NULL, WS_VISIBLE | WS_CHILD | WS_BORDER | LVS_SHOWSELALWAYS | LVS_REPORT, 0, 0, 250, 400, window, NULL, NULL, NULL);
LVCOLUMN lvc;
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.iSubItem = 0;
lvc.pszText = "Title";
lvc.cx = 50;
lvc.fmt = LVCFMT_LEFT;
ListView_InsertColumn(list, 0, &lvc);
Run Code Online (Sandbox Code Playgroud)
但是如果我编译并执行代码,只会显示一个空白窗口.编译器:Windows 7(x86)上的MinGW.
有人可以帮我正确显示列表视图吗?
我在互联网上看到了一些在WM_CREATE下创建按钮的例子,我做了一些项目,其中创建"一些"按钮,如开始/停止按钮或文本字段必须在MainWindow下创建,而不是在WM_CREATE下创建.
当我们可以在这两者之间做出选择时,是否有任何理由选择一个人而不是其他人?
我是Visual C++的新手(我过去用C编译而不是C++编程).我开始创建一些基本的应用程序,包括窗口和控件以及其他类似的东西.当我运行我的一个应用程序对话框时,看看它的外观(不要看它里面的文字,它只是一些文字):

我的问题是我制作的任何组件,它看起来像Windows 2000的组件.如何获得Windows 7样式?
BTW.我是新人,如果有人能给我提供有关学习的好资源的建议,我将不胜感激.:)
如何在Win32 API中添加不确定的进度栏?
我只希望动画/进度条在按下按钮时显示为主窗口的子项,继续动画直到再次播放该按钮,然后消失。
在 Python 中调用 GetWindowRect() 时,如果使用的 DPI 缩放级别不是 100%,则它返回的值不准确。有什么办法可以解决这个问题,或者在数学上进行调整?
我已经搜索过这个但是我找不到我做错了什么.我试图让这个函数在每次调用时附加数据,但它总是这样做一次.如果该文件不存在,则创建一个新文件并在文件上写入一次,如果该文件存在则不执行任何操作(或者可能覆盖)
void WriteToFile (char data[],wchar_t filename[] )
{
HANDLE hFile;
DWORD dwBytesToWrite = (DWORD)strlen(data);
DWORD dwBytesWritten ;
BOOL bErrorFlag = FALSE;
hFile = CreateFile((LPCWSTR)filename, // name of the write
GENERIC_WRITE, // open for writing
0, // do not share
NULL, // default security
CREATE_NEW, // create new file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
if (hFile == INVALID_HANDLE_VALUE)
{
DisplayError(TEXT("CreateFile"));
_tprintf(TEXT("Terminal failure: Unable to open file \"%s\" for write.\n"), filename);
return;
}
bErrorFlag = WriteFile(
hFile, …Run Code Online (Sandbox Code Playgroud) 主题:简单的基于 C++ Win32 API 的单窗口应用程序。请参阅下面的代码。计算机是 MacBook Retina,本地安装了 Windows 10。
问题:标题栏(窗口的非客户区域)中的最小化/最大化/关闭按钮在鼠标悬停事件上表现不正确。每个按钮仅在鼠标光标移动时突出显示,而按钮应一直突出显示,直到鼠标指针离开按钮区域。
问题是:有什么问题?Win10清单?
编码:
#include <Windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
TCHAR msgGreeting[] = _T("Hello World from MyWindowsApp!");
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 10, 10, msgGreeting, (int)_tcsclen(msgGreeting));
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
}
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR …Run Code Online (Sandbox Code Playgroud) 所以我有这个简单的代码,因为我是 win32 的新手,所以不要指望我编写非常困难的代码,但是,这是我的 winProc
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_DESTROY: PostQuitMessage (0); break;
case WM_CREATE : make_controls(hwnd); break;
case WM_COMMAND: handle_commands(hwnd, wParam, lParam); break;
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是handle_commands功能
void handle_commands(HWND hwnd, WPARAM wp, LPARAM lp){
if( HIWORD(wp) == BN_CLICKED && LOWORD(wp) == openBtn ){
// …Run Code Online (Sandbox Code Playgroud) 我知道WM_SIZE和WM_SIZING,但是当用户使用系统菜单最大化或最小化窗口时是否会发送一条消息?
我需要在我的项目中捕获此事件,但我无法通过谷歌搜索出该消息是什么。
我已将 ID_BUTTON 定义为 1,当我尝试运行代码时:
CreateWindow(L"Button", L"TEst", style, monitor.right / 2 - 100, 200, 100, 50, m_hWnd, (HMENU) ID_BUTTON, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息“需要一个‘)’”
如果我把 NULL 而不是“(HMENU) ID_BUTTON”,它就可以正常工作,我错过了什么?
#include "Window.h"
#define ID_BUTTON 1;
RECT monitor; // deminsions of monitor
Window::Window() : m_hInst(GetModuleHandle(nullptr)) //creates the window
{
WNDCLASS wc = {};
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hInstance = m_hInst;
wc.lpszClassName = ClassName;
wc.lpfnWndProc = WindProc;
RegisterClass(&wc);
DWORD style = WS_OVERLAPPEDWINDOW | WS_VISIBLE;
GetWindowRect(GetDesktopWindow(), &monitor);
m_hWnd = CreateWindow(ClassName, WindowTitle, style, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud)