windows-为什么我的程序一开始窗口空白,需要改变大小或者最小化,谁能解释这个和一般的程序的不同

问题描述

为什么我的程序一开始窗口空白,需要改变大小或者最小化,谁能解释这个和一般的程序的不同
#include
#include

#define NUM 1000
#define TWOPI (2 * 3.14159)

LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);

int WINAPI WinMain(HINSTANCE hInstance HINSTANCE hPrevInstance
PSTR szCmdLine int iCmdShow)
{
static TCHAR szAppName[] = TEXT(""SineWave"");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

wndclass.style = CS_HREDRAW | CS_VREDRAW;wndclass.lpfnWndProc = WndProc;wndclass.cbClsExtra = 0;wndclass.cbWndExtra = 0;wndclass.hInstance = hInstance;wndclass.hIcon = LoadIcon(NULL IDI_APPLICATION);wndclass.hCursor = LoadCursor(NULL IDC_ARROW);wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.lpszMenuName = NULL;wndclass.lpszClassName = szAppName;if (!RegisterClass(&wndclass)){    MessageBox(NULL TEXT(""Program requires Windows NT!"")        szAppName MB_ICONERROR);    return 0;}hwnd = CreateWindow(szAppName TEXT(""Sine Wave Using Polyline"")    WS_OVERLAPPEDWINDOW    CW_USEDEFAULT CW_USEDEFAULT    CW_USEDEFAULT CW_USEDEFAULT    NULL NULL hInstance NULL);ShowWindow(hwnd iCmdShow);UpdateWindow(hwnd);while (GetMessage(&msg NULL 0 0)){    TranslateMessage(&msg);    DispatchMessage(&msg);}return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hwnd UINT message WPARAM wParam LPARAM lParam)
{
static int cxClient cyClient;
HDC hdc;
int i;
PAINTSTRUCT ps;
POINT apt[NUM];

switch (message){case WM_SIZE:    cxClient = LOWORD(lParam);    cyClient = HIWORD(lParam);    return 0;case WM_PAINT:    hdc = BeginPaint(hwnd &ps);    MoveToEx(hdc 0 cyClient / 2 NULL);    LineTo(hdc cxClient cyClient / 2);    for (i = 0; i < NUM; i++)    {        apt[i].x = i * cxClient / NUM;        apt[i].y = (int)(cyClient / 2 * (1 - sin(TWOPI * i / NUM)));    }    Polyline(hdc apt NUM);    return 0;case WM_DESTROY:    PostQuitMessage(0);    return 0;}return DefWindowProc(hwnd message wParam lParam);

}

解决方案

调用InvalidateRect强制刷新下客户区

时间: 2024-10-28 01:45:48

windows-为什么我的程序一开始窗口空白,需要改变大小或者最小化,谁能解释这个和一般的程序的不同的相关文章

苹果Mac怎么改变Dock栏最小化窗口

  苹果 Mac 用户可能都知道通过系统偏好设置可以对 Dock 最小化窗口时的效果进行选择,系统分别提供了神奇效果和缩放效果可选.不过如果你想寻找一些不一样的动画效果的话,就试试今天我们提供的终端指令吧. 今天PC6小编向你介绍的终端可以调出 Dock 最小化窗口的隐藏"卷入"效果,通过系统偏好设置是无法访问该动画效果的. 下面是通过终端改变Dock栏最小化窗口动画效果的详细步骤: 1.我们首先要打开终端,然后输入下列指令并回车: defaults write com.apple.d

窗口风格-windows编程中怎样让建立的窗口不能拉伸,应该设置什么样式?

问题描述 windows编程中怎样让建立的窗口不能拉伸,应该设置什么样式? 最近在学习Windows编程,看windows程序设计,但那个hellowin程序出来的窗口是可以拉伸的,怎样固定下来,让窗口不可以拉伸,应该是一个窗口样式或者风格,但老是查不出来,求助! 解决方案 WS_SIZEBOX WS_THICKFRAM 解决方案二: http://blog.csdn.net/diaolingle/article/details/17284711 解决方案三: WS_BORDER 0X00800

如何获取windows中当前运行并且处于所有窗口最前端的进程

问题描述 如何获取windows中当前运行并且处于所有窗口最前端的进程1.请问如何获取windows中当前运行并且处于所有窗口最前端的进程?2.如何将这个窗口切换到后台,让另一个指定程序显示在最前端?3.如何最小化这个窗口.请各大神指教,我用C#发现实现这类操作确实蛋疼,我试了windowsAPI但用的也不是很熟练,没办法ZF的客户要求太变态我真要崩溃了,求解救. 解决方案 解决方案二:Get/SetForegroundWindow()SetWindowLong设置WS_MINIMIZE最小化解

苹果Mac Dock栏最小化窗口如何设置

  苹果 Mac 用户可能都知道通过系统偏好设置可以对 Dock 最小化窗口时的效果进行选择,系统分别提供了神奇效果和缩放效果可选.不过如果你想寻找一些不一样的动画效果的话,就试试今天我们提供的终端指令吧. 通过系统偏好设置是无法访问该动画效果的. 下面是通过终端改变Dock栏最小化窗口动画效果的详细步骤: 1.我们首先要打开终端,然后输入下列指令并回车: defaults write com.apple.dock mineffect suck; killall Dock 2.就是这么简单,你就

用C#编写一Windows程序,要求在窗口的空白处响应鼠标单击事件,怎样设计?

问题描述 各位高手:我想用C#编写一Windows程序,要求在窗口的空白处响应鼠标单击事件,怎样设计?谢谢! 解决方案 解决方案二:写个窗体的MouseClick事件解决方案三:楼上正解解决方案四:usingSystem;usingSystem.Windows.Forms;classTest:Form{protectedoverridevoidOnClick(EventArgse){MessageBox.Show("Clicked!");base.OnClick(e);}staticv

窗口过程-windows程序设计 为什么窗口一开始空白,需要最小化或者改变大小才显示

问题描述 windows程序设计 为什么窗口一开始空白,需要最小化或者改变大小才显示 /*-----------------------------------------SINEWAVE.C -- Sine Wave Using Polyline(c) Charles Petzold 1998-----------------------------------------*/ #include #include #define NUM 1000#define TWOPI (2 * 3.141

c++-win32编程中基于对话框的程序和普通的窗口程序有什么区别?

问题描述 win32编程中基于对话框的程序和普通的窗口程序有什么区别? 很疑惑,既然窗口可以直接编写,为什么还要基于对话框来写程序? 解决方案 这就好比你将滚动条用于窗口一部分和使用滚动条控件,效果最终一样,但是后者Windows会为你处理一些鼠标和键盘上的逻辑,使得编程更容易,对话框中一般使用大量控件,Windows会为你处理比如输入焦点转移.键鼠等逻辑.

gui-该程序点击窗口后为什么放大窗口才能显示标签???求帮助!!

问题描述 该程序点击窗口后为什么放大窗口才能显示标签???求帮助!! package com.woaixuchen; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseList

mdi-VC6中关于MDI程序中框架窗口重新排列的问题

问题描述 VC6中关于MDI程序中框架窗口重新排列的问题 场景如下:打开主程序一开始弹出一个HTMLView,通过这个view输入用户名和密码登录后打开其他的几个view,但是默认都是在此htmlview的后面显示的(最大化的时候),有没有办法在不关闭登录htmlview的前提下把其放到新打开view的最后显示?谢谢 解决方案 pMDIChild->SetWindowPos传SWP_NOMOVE | SWP_NOSIZE