我是一菜鸟原来的帖子中想要创建任务栏,已经找到了有CE界面调用任务栏的方法。对于没CE界面的我在做简单的画一个任务栏的操作,
采用如下步骤:
1:设置DLG作为任务栏固定在屏幕底端(已完成)
- C/C++ code
hDlgTaskBar = CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_TASKDLG), g_hMain, TASKProc);MoveWindow(hDlgTaskBar, 0, cy-20, cx, 20, TRUE);ShowWindow(hDlgTaskBar, SW_SHOW); CheckMenuItem(hMenu, IDM_TOOL_TASKBAR, MF_CHECKED);
2:在DLG上根据窗口数量创建BUTTON——关键(正在进行)
画BUTTON的做出来的效果
首先:不知道如何得到当前窗口的数量!(在做)
其次:如何相应BUTTON_DOWN来切换窗口!
- C/C++ code
//定义了一个简单结构体struct { HWND g_hButton; HMENU ID_Button; TCHAR *Text_Button;} TASKBUTTON[50];//对TASKProc的响应BOOL CALLBACK TASKProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { hDlgTaskBar = hWnd; g_iWndCount = 0; //记录窗口数量 int i; switch (message) { case WM_COMMAND: { wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); switch (wmId) case BN_CLICKED: { //?这里的i值如何得到,怎么给szSel赋值 TCHAR * szSel = TASKBUTTON[i].Text_Button; HWND hSel = FindWindow(NULL, szSel); BOOL y = SetForegroundWindow(hSel); ShowWindow(hSel, SW_SHOW); } break; } break; case WM_INITDIALOG: if (GetParent(g_hMain) ==NULL) { //??想要得到当前所有窗口数量和窗口的名称,可是却只得到了一个窗口的名称 WINDOWINFO info; memset(&info, 0, sizeof(WINDOWINFO)); GetWindowAttributes(g_hMain, info); if (_tcscmp(info.szWindowText, _T("")) != NULL) { TASKBUTTON[g_iWndCount].Text_Button = info.szWindowText; g_iWndCount ++; } //设定button大小 int cx = GetSystemMetrics(SM_CXSCREEN) - 1; int cy = GetSystemMetrics(SM_CYSCREEN) - 1; int wide = ((cx - 1) - g_iWndCount * 2) / g_iWndCount; int high = 20 - 1; //创建各个Button for (i = 0 ; i < g_iWndCount; i++) { //??每个Button对应相应的ButtonProc事件 TASKBUTTON[i].g_hButton = CreateWindow( TEXT("button"),TASKBUTTON[i].Text_Button , WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, i*wide + 2 , 1 , wide, high ,hDlgTaskBar, (HMENU)TASKBUTTON[i].ID_Button, g_hInst, NULL); ShowWindow(TASKBUTTON[i].g_hButton, SW_SHOW); } } else { MessageBox(hWnd, _T("There is no programe here!"), _T("MioExplore"), MB_OKCANCEL| MB_ICONWARNING); } break; } return 0;}
希望有兴趣的朋友能帮忙指导一下,帮我完成窗口对应BUTTON和BUTTON响应的操作
我已经将现在难做的地方标注“??”
3:对BUTTON做相应的响应用来实现窗口的切换;
希望通过ShowWindow(hwnd, SW_SHOW);和ShowWindow(hwnd, SW_HIDE);完成切换
本人定“上门”拜谢!
------解决方案--------------------
CE下进度查看,与PC下基本上是相同的,LZ可以去参考PC上相关的东东(网上可以search到一大把)
------解决方案--------------------
CE下进度查看,与PC下基本上是相同的,LZ可以去参考PC上相关的东东(网上可以search到一大把)
------解决方案--------------------
字体多了在button上没有显示完成,这个改了很久没成功呵呵,最后把显示内容改少点
------解决方案--------------------