Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Динамическое создание 10 кнопок, по нажатию на первые 5 – меняется заголовок окна, по нажатию на остальные – меняется название самой кнопки.Содержание книги
Поиск на нашем сайте
#include <windows.h> #include <stdio.h> #include <string.h> #define ID_BUTTON1 1001 LONG MyWinP(HWND, UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char ProgName[]="My Window"; char Title[]="Заголовок окна"; HWND hWnd; MSG msg; WNDCLASS w; w.lpszClassName=ProgName; w.hInstance=hInstance; w.lpfnWndProc=(WNDPROC)MyWinP; w.hCursor=LoadCursor(NULL, IDC_ARROW); w.hIcon=LoadIcon(NULL,IDI_APPLICATION); w.lpszMenuName=NULL; w.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); w.style=CS_HREDRAW | CS_VREDRAW; w.cbClsExtra=0; w.cbWndExtra=0; if(!RegisterClass(&w)) return false; hWnd=CreateWindow(ProgName,Title, WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,0,0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if (!hWnd) return false; ShowWindow(hWnd, nCmdShow); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LONG MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { static HWND rButton[10]; int i; char bname[40]; switch(msg) { case WM_COMMAND: if (LOWORD(wParam)>=ID_BUTTON1 && LOWORD(wParam)<=ID_BUTTON1+4) { sprintf(bname,"Нажата %d кнопка",LOWORD(wParam)-ID_BUTTON1); SetWindowText(hWnd, bname); } if (LOWORD(wParam)>=ID_BUTTON1+5) { for(i=5; i<10; i++) { sprintf(bname,"%d button",i); SetWindowText(rButton[i], bname); } sprintf(bname,"Нажата %d кнопка",LOWORD(wParam)-ID_BUTTON1); SetWindowText(rButton[LOWORD(wParam)-ID_BUTTON1], bname); } break;
case WM_CREATE: for(i=0; i<10; i++) { sprintf(bname,"%d button",i); if (i==0 || i==5) rButton[i]=CreateWindow("button",bname,WS_TABSTOP|WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON|BS_FLAT|BS_PUSHLIKE|WS_GROUP, 10, 10+i*25, 145, 25, hWnd, (HMENU)(ID_BUTTON1+i),NULL,NULL); else rButton[i]=CreateWindow("button",bname,WS_TABSTOP|WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON|BS_FLAT|BS_PUSHLIKE, 10, 10+i*25, 145, 25, hWnd, (HMENU)(ID_BUTTON1+i),NULL,NULL);
} SendMessage(rButton[0], BM_SETCHECK,1,0); SetWindowText(hWnd, "Нажата 0 кнопка"); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } return 0; }
Пример 7 Динамическое создание скролла, по его перемещению – в заголовке окна выдается расстояние #include <windows.h> #include <stdio.h> #include <string.h> #define ID_SCROLL 1001 LONG MyWinP(HWND, UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char ProgName[]="My Window"; char Title[]="Заголовок окна"; HWND hWnd; MSG msg; WNDCLASS w; w.lpszClassName=ProgName; w.hInstance=hInstance; w.lpfnWndProc=(WNDPROC)MyWinP; w.hCursor=LoadCursor(NULL, IDC_ARROW); w.hIcon=LoadIcon(NULL,IDI_APPLICATION); w.lpszMenuName=NULL; w.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); w.style=CS_HREDRAW | CS_VREDRAW; w.cbClsExtra=0; w.cbWndExtra=0; if(!RegisterClass(&w)) return false; hWnd=CreateWindow(ProgName,Title, WS_OVERLAPPEDWINDOW,0,0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if (!hWnd) return false; ShowWindow(hWnd, nCmdShow); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LONG MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { static HWND Scroll1; static int nPage, nCurPos, nPosMin, nPosMax; char pos[5]; switch(msg) { case WM_CREATE: Scroll1=CreateWindow("scrollbar",NULL, SBS_HORZ|SBS_BOTTOMALIGN|WS_CHILD|WS_VISIBLE,10,10,160,16,hWnd,(HMENU)0,NULL,NULL); nPage=10; nPosMin=1; nPosMax=150; nCurPos=30; SetScrollRange(Scroll1, SB_CTL, nPosMin, nPosMax, TRUE); SetScrollPos(Scroll1, SB_CTL, nCurPos, TRUE); sprintf(pos,"%d",nCurPos); SetWindowText(hWnd, pos); break; case WM_HSCROLL: switch (LOWORD(wParam)) { case SB_LEFT: nCurPos=nPosMin; break; case SB_LINELEFT: nCurPos--; break; case SB_PAGELEFT: nCurPos-=nPage; break; case SB_RIGHT: nCurPos=nPosMax; break; case SB_LINERIGHT: nCurPos++; break; case SB_PAGERIGHT: nCurPos+=nPage; break; case SB_THUMBPOSITION: case SB_THUMBTRACK: nCurPos=HIWORD(wParam); break;
} if (nCurPos>=nPosMax) { nCurPos=nPosMax; EnableScrollBar(Scroll1, SB_CTL, ESB_DISABLE_RIGHT); } if (nCurPos<=nPosMin) { nCurPos=nPosMin; EnableScrollBar(Scroll1, SB_CTL, ESB_DISABLE_LEFT); } SetScrollPos(Scroll1, SB_CTL, nCurPos, TRUE); sprintf(pos,"%d",nCurPos); SetWindowText(hWnd, pos); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } return 0; }
Пример 8 Создание тулбара
#include <windows.h> #include <commctrl.h> #define ID_TOOLBAR 100 #define ID_FILEOPEN 40001 #define ID_FILESAVE 40002 #define ID_FILENEW 40003 LONG MyWinP(HWND, UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char ProgName[]="My Window"; char Title[]="Заголовок окна"; HWND hWnd; MSG msg; WNDCLASS w; w.lpszClassName=ProgName; w.hInstance=hInstance; w.lpfnWndProc=(WNDPROC)MyWinP; w.hCursor=LoadCursor(NULL, IDC_ARROW); w.hIcon=LoadIcon(NULL, IDI_APPLICATION); w.lpszMenuName=NULL; w.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); w.style=CS_HREDRAW | CS_VREDRAW; w.cbClsExtra=0; w.cbWndExtra=0; if(!RegisterClass(&w)) return false; hWnd=CreateWindow(ProgName,Title, WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,0,0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if (!hWnd) return false; ShowWindow(hWnd, nCmdShow); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }LONG MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { static TBBUTTON but[5]; static HWND hToolBar; switch(msg) { case WM_CREATE: but[0].fsStyle=TBSTYLE_SEP; but[1].iBitmap=STD_FILENEW; but[1].idCommand=ID_FILENEW; but[1].fsState=TBSTATE_ENABLED; but[1].fsStyle=TBSTYLE_GROUP; but[2].fsStyle=TBSTYLE_SEP; but[3].iBitmap=STD_FILEOPEN; but[3].idCommand=ID_FILEOPEN; but[3].fsState=TBSTATE_ENABLED; but[3].fsStyle=TBSTYLE_GROUP; but[4].iBitmap=STD_FILESAVE; but[4].idCommand=ID_FILESAVE; but[4].fsState=TBSTATE_ENABLED; but[4].fsStyle=TBSTYLE_GROUP; hToolBar=CreateToolbarEx(hWnd,WS_CHILD|WS_VISIBLE|WS_DLGFRAME,ID_TOOLBAR,0,HINST_COMMCTRL,IDB_STD_LARGE_COLOR,but,5,0,0,0,0,sizeof(TBBUTTON)); break; case WM_SIZE: MoveWindow(hToolBar,0,0,0,0,TRUE); break; case WM_COMMAND: switch(LOWORD(wParam)) { case ID_FILEOPEN: MessageBox(hWnd,"Открыть файл","",MB_OK); break; case ID_FILESAVE: MessageBox(hWnd,"Сохранить файл","",MB_OK); break; case ID_FILENEW: MessageBox(hWnd,"Новый файл","",MB_OK); break; } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } return 0;} Пример 9
|
||
|
Последнее изменение этой страницы: 2016-07-14; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.) |