设置字母尺寸
分析:在WM_CREATE消息中获取字母宽度与高度修改后存入变量,在WM_PAINT消息中打印时直接在TextOut函数里面使用变量进行设置
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889#include <windows.h>#include <strsafe.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR CmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("MyWindows"); ...
实时获取鼠标位置
分析:窗口框架直接搬过来,修改回调函数WndProc,利用WM_MOUSEMOVE消息中的lParam参数获取实时鼠标位置并输出在左上角
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#include <windows.h>#include <strsafe.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR CmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("MyWindows"); // 注意使用TEXT包裹语句 HWND ...
第一个完整窗口
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR CmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("MyWindows"); // 注意使用TEXT包裹语句 HWND hwnd; // 窗口句柄 MSG msg; // 消息结构 WNDCLASS wndclass; // 窗口类, 定义窗口基本属性 wndclass.style = CS_HREDRAW | CS_VREDRAW; ...
switch+level实现税后工资计算
前言switch+level这个办法是以前C语言老师教的,当时觉得好厉害~
【问题描述】 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元; 2) A中不超过1500元的部分,税率3%; 3) A中超过1500元未超过4500元的部分,税率10%; 4) A中超过4500元未超过9000元的部分,税率20%; 5) A中超过9000元未超过35000元的部分,税率25%; 6) A中超过35000元未超过55000元的部分,税率30%; 7) A中超过55000元未超过80000元的部分,税率35%; 8) A中超过80000元的部分,税率45%; 例如,如果小明的税前工资为10000元,则A=10000-3500=6500元,其中不超过1500元部分应缴税1500×3%=45元,超过1500元不超过4500元部分应缴 ...
蛇形打印
【问题描述】蛇形填数
在n×n方阵里填入1,2,…,n×n,要求填成蛇形。例如,n=4时方阵为:
1234567 1 2 3 412 13 14 511 16 15 610 9 8 7
为了美化效果,我们设置每个数宽度为4,填充符号为*。先输入n值,n≤10。
【样例输入】14
【样例输出】1234567***1***2***3***4**12**13**14***5**11**16**15***6**10***9***8***7
分析:总循环次数为n / 2,每一次循环打印一圈,每一圈分为四条边,每条边的定位和长度与循环的当前次数关联
ps:使用动态二维数组可以保证n的值随意设定;要使用普通二维数组的话把num重新定义并删除初始化动态二维数组即可
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include <iostream>#include <iomanip>#include &l ...