网站备案没座机,跑wordpress配置,什么是网站的功能模块,买的电脑没有wordpress;运行效果 ;win32汇编环境,窗口程序中使用进度条控件 ;进度条控件主要涉及的是长度单位#xff0c;每步步长#xff0c;推进的时间。 ;比如你的长度是1000#xff0c;步长是100#xff0c;每秒走1次#xff0c;则10秒走完全程 ;比如你的长度是1000#xff0c;步长是10运行效果 ;win32汇编环境,窗口程序中使用进度条控件 ;进度条控件主要涉及的是长度单位每步步长推进的时间。 ;比如你的长度是1000步长是100每秒走1次则10秒走完全程 ;比如你的长度是1000步长是10每秒走1次则100秒走完全程但每格格子的长度与上面一样 ;以下例子设置为2条进度条通过比较可以理解其原理。 ;下面为asm文件将代码复制进RadASM里面可以直接编译 ; .386 .model flat,stdcall option casemap:none include windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib ; WinMain proto :DWORD,:DWORD,:DWORD,:DWORD ; .DATA ClassName db SimpleWinClass,0 AppName db 窗口程序的模版,0 szPGClassName db msctls_progress32,0 ;进度条类名
.DATA? hInstance HINSTANCE ? CommandLine LPSTR ? hID_PG01 dd ? ;进度条控件句柄 hID_PG02 dd ? ; ; Equ 等值定义 IDC_PGL01 equ 101 ;进度条控件标识符 IDC_PGL02 equ 102
ID_TIMER1 equ 1 ; .CODE
start: invoke GetModuleHandle, NULL mov hInstance,eax invoke GetCommandLine mov CommandLine,eax invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT invoke ExitProcess, eax ; WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX LOCAL msg:MSG LOCAL hwnd:HWND mov wc.cbSize,SIZEOF WNDCLASSEX mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, OFFSET WndProc mov wc.cbClsExtra,NULL mov wc.cbWndExtra,NULL push hInstance pop wc.hInstance mov wc.hbrBackground,COLOR_WINDOW1 mov wc.lpszMenuName,NULL mov wc.lpszClassName,OFFSET ClassName invoke LoadIcon,NULL,IDI_APPLICATION mov wc.hIcon,eax mov wc.hIconSm,eax invoke LoadCursor,NULL,IDC_ARROW mov wc.hCursor,eax invoke RegisterClassEx, addr wc invoke CreateWindowEx,NULL, ADDR ClassName,ADDR AppName,WS_OVERLAPPEDWINDOW,100,100,250,200, NULL,NULL,hInst, NULL mov hwnd,eax invoke ShowWindow, hwnd,CmdShow invoke UpdateWindow, hwnd .while TRUE invoke GetMessage, ADDR msg,NULL,0,0 .break .if (!eax) invoke TranslateMessage, ADDR msg invoke DispatchMessage, ADDR msg .endw mov eax,msg.wParam ret WinMain endp ; WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM .if uMsg WM_CREATE invoke CreateWindowEx,NULL,ADDR szPGClassName,NULL, WS_CHILDWINDOWWS_VISIBLE,20,40,192,30,hWnd,IDC_PGL01,NULL,NULL ;创建进度条,192这个值是试出来的大概刚刚好走完10格的样子 mov hID_PG01,eax invoke CreateWindowEx,NULL,ADDR szPGClassName,NULL, WS_CHILDWINDOWWS_VISIBLE,20,100,192,30,hWnd,IDC_PGL02,NULL,NULL mov hID_PG02,eax invoke SendDlgItemMessage,hWnd,IDC_PGL01,PBM_SETRANGE32,0,1000 ;设置进度条的最小值为0最大值为100.这个值设置的大小与单位时间相关。 invoke SendDlgItemMessage,hWnd,IDC_PGL01,PBM_SETSTEP,100,0 ;设置进度条每次步进的增量为10 invoke SendDlgItemMessage,hWnd,IDC_PGL02,PBM_SETBARCOLOR,0,16711935 ;设进度条格子颜色为绿色16711935是红色。这个值是RGB的值转化为10进制后的。不设的话默认是蓝色 invoke SendDlgItemMessage,hWnd,IDC_PGL02,PBM_SETRANGE32,0,1000 invoke SendDlgItemMessage,hWnd,IDC_PGL02,PBM_SETSTEP,10,0 invoke SetTimer,hWnd,ID_TIMER1,1000,NULL ;设定时器1000即1秒 .elseif uMsg WM_TIMER ;处理定时器消息 mov eax,wParam .if eax ID_TIMER1 invoke SendDlgItemMessage,hWnd,IDC_PGL01,PBM_STEPIT,0,0 ;每秒走1格 invoke SendDlgItemMessage,hWnd,IDC_PGL02,PBM_STEPIT,0,0 ;10秒走1格,因为步长不一样 .endif .elseif uMsgWM_DESTROY invoke PostQuitMessage,NULL .else invoke DefWindowProc,hWnd,uMsg,wParam,lParam ret .endif xor eax,eax ret WndProc endp ; end start