这篇教程C++ GetMessagePos函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetMessagePos函数的典型用法代码示例。如果您正苦于以下问题:C++ GetMessagePos函数的具体用法?C++ GetMessagePos怎么用?C++ GetMessagePos使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetMessagePos函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: switch/***************************************************OnHScroll The framework calls this member function when the user clicks a window's horizontal scroll bar.Params: nSBCode - please see MSDN for more information on the parameters. nPos pScrollBarReturns: <none>*****************************************************/void CUGHScroll::HScroll(UINT nSBCode, UINT nPos) { if(GetFocus() != m_ctrl->m_CUGGrid) m_ctrl->m_CUGGrid->SetFocus(); m_ctrl->m_GI->m_moveType = 4; switch(nSBCode) { case SB_LINEDOWN: m_ctrl->MoveLeftCol(UG_COLRIGHT); break; case SB_LINEUP: m_ctrl->MoveLeftCol(UG_COLLEFT); break; case SB_PAGEUP: m_ctrl->MoveLeftCol(UG_PAGELEFT); break; case SB_PAGEDOWN: m_ctrl->MoveLeftCol(UG_PAGERIGHT); break; case SB_TOP: m_ctrl->MoveLeftCol(UG_LEFT); break; case SB_BOTTOM: m_ctrl->MoveLeftCol(UG_RIGHT); break; case SB_THUMBTRACK: if(m_GI->m_hScrollMode == UG_SCROLLTRACKING) //tracking m_ctrl->SetLeftCol(nPos+m_GI->m_numLockCols); m_trackColPos = nPos+m_GI->m_numLockCols; //if enabled then show scroll hints #ifdef UG_ENABLE_SCROLLHINTS if(m_GI->m_enableHScrollHints) { CString string; RECT rect; GetWindowRect(&rect); rect.left = LOWORD(GetMessagePos()); m_ctrl->ScreenToClient(&rect); m_ctrl->m_CUGHint->SetWindowAlign(UG_ALIGNCENTER|UG_ALIGNBOTTOM); m_ctrl->m_CUGHint->SetTextAlign(UG_ALIGNCENTER); m_ctrl->OnHScrollHint(m_trackColPos,&string); // set text before move window... m_ctrl->m_CUGHint->SetText(string,FALSE); m_ctrl->m_CUGHint->MoveHintWindow(rect.left,rect.top-1,20); m_ctrl->m_CUGHint->Show(); } #endif // UG_ENABLE_SCROLLHINTS break; case SB_ENDSCROLL: break; case SB_THUMBPOSITION: #ifdef UG_ENABLE_SCROLLHINTS if(m_GI->m_enableHScrollHints) { m_ctrl->m_CUGHint->Hide(); } #endif m_ctrl->SetLeftCol(nPos+m_GI->m_numLockCols); break; }}
开发者ID:boboding,项目名称:Boboding,代码行数:80,
示例2: GetWindowLong//.........这里部分代码省略......... LVCOLUMN col; // Attach the class to the window first cs = ( LPCREATESTRUCT ) lParam; nav = ( rvGENavigator * ) cs->lpCreateParams; SetWindowLong( hWnd, GWL_USERDATA, ( LONG )nav ); // Create the List view nav->mTree = CreateWindowEx( 0, "SysListView32", "", WS_VSCROLL | WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_OWNERDRAWFIXED | LVS_NOCOLUMNHEADER | LVS_SHOWSELALWAYS, 0, 0, 0, 0, hWnd, ( HMENU )IDC_GUIED_WINDOWTREE, win32.hInstance, 0 ); ListView_SetExtendedListViewStyle( nav->mTree, LVS_EX_FULLROWSELECT ); ListView_SetBkColor( nav->mTree, GetSysColor( COLOR_3DFACE ) ); ListView_SetTextBkColor( nav->mTree, GetSysColor( COLOR_3DFACE ) ); nav->mListWndProc = ( WNDPROC )GetWindowLong( nav->mTree, GWL_WNDPROC ); SetWindowLong( nav->mTree, GWL_USERDATA, ( LONG )nav ); SetWindowLong( nav->mTree, GWL_WNDPROC, ( LONG )ListWndProc ); // Insert the only column col.mask = 0; ListView_InsertColumn( nav->mTree, 0, &col ); break; } case WM_SIZE: { RECT rClient; MoveWindow( nav->mTree, 0, 0, LOWORD( lParam ), HIWORD( lParam ), TRUE ); GetClientRect( nav->mTree, &rClient ); ListView_SetColumnWidth( nav->mTree, 0, rClient.right - rClient.left - 1 ); break; } case WM_NCACTIVATE: return gApp.ToolWindowActivate( gApp.GetMDIFrame(), msg, wParam, lParam ); case WM_NOTIFY: { LPNMHDR nh; nh = ( LPNMHDR ) lParam; switch( nh->code ) { case NM_CLICK: case NM_DBLCLK: { DWORD dwpos = GetMessagePos(); LVHITTESTINFO info; info.pt.x = LOWORD( dwpos ); info.pt.y = HIWORD( dwpos ); MapWindowPoints( HWND_DESKTOP, nh->hwndFrom, &info.pt, 1 ); int index = ListView_HitTest( nav->mTree, &info ); if( index != -1 ) { RECT rItem; int offset; ListView_GetItemRect( nav->mTree, index, &rItem, LVIR_BOUNDS ); LVITEM item; item.mask = LVIF_PARAM; item.iItem = index; ListView_GetItem( nav->mTree, &item ); idWindow *window = ( idWindow * )item.lParam; rvGEWindowWrapper *wrapper = rvGEWindowWrapper::GetWrapper( window ); offset = wrapper->GetDepth( ) * 10 + 1; if( info.pt.x < GENAV_ITEMHEIGHT ) { if( !rvGEWindowWrapper::GetWrapper( window )->IsHidden( ) ) { nav->mWorkspace->HideWindow( window ); } else { nav->mWorkspace->UnhideWindow( window ); } } else if( info.pt.x > GENAV_ITEMHEIGHT + offset && info.pt.x < GENAV_ITEMHEIGHT + offset + 16 ) { if( wrapper->CanHaveChildren( ) && window->GetChildCount( ) ) { if( wrapper->IsExpanded( ) ) { wrapper->Collapse( ); nav->Update( ); } else { wrapper->Expand( ); nav->Update( ); } }
开发者ID:SL987654,项目名称:The-Darkmod-Experimental,代码行数:67,
示例3: switch//.........这里部分代码省略......... HTREEITEM treeitem = NULL; TVHITTESTINFO ti; memset(&ti, 0, sizeof(ti)); if (pt.x != -1 && pt.y != -1) { ti.pt = pt; ScreenToClient(list, &ti.pt); uSendMessage(list, TVM_HITTEST, 0, (long)&ti); if (ti.hItem && (ti.flags & TVHT_ONITEM)) { //FIX THIS AND AUTOSEND //TreeView_Select(list, ti.hItem, TVGN_DROPHILITE); //uSendMessage(list,TVM_SELECTITEM,TVGN_DROPHILITE,(long)ti.hItem); treeitem = ti.hItem; } } else { treeitem = TreeView_GetSelection(list); RECT rc; if (treeitem && TreeView_GetItemRect(wnd_tv, treeitem, &rc, TRUE)) { MapWindowPoints(wnd_tv, HWND_DESKTOP, (LPPOINT)&rc, 2); pt.x = rc.left; pt.y = rc.top + (rc.bottom - rc.top) / 2; } else { GetMessagePos(&pt); } } TreeView_Select(list, treeitem, TVGN_DROPHILITE); HMENU menu_view = CreatePopupMenu(); unsigned n, m = cfg_view_list.get_count(); string8_fastalloc temp; temp.prealloc(32); uAppendMenu(menu_view, MF_STRING | (!stricmp_utf8(directory_structure_view_name, view) ? MF_CHECKED : 0), ID_VIEW_BASE + 0, directory_structure_view_name); list_t<string_simple, pfc::alloc_fast> views; views.add_item(string_simple(directory_structure_view_name)); for (n = 0; n<m; n++) { temp = cfg_view_list.get_name(n); string_simple item(temp.get_ptr()); if (item) { uAppendMenu(menu_view, MF_STRING | (!stricmp_utf8(temp, view) ? MF_CHECKED : 0), ID_VIEW_BASE + views.add_item(item), temp); } } IDM_MANAGER_BASE = ID_VIEW_BASE + views.get_count(); uAppendMenu(menu, MF_STRING | MF_POPUP, (UINT)menu_view, "View");
开发者ID:ASopH,项目名称:columns_ui,代码行数:67,
示例4: AudioDlgProcINT_PTR CALLBACKAudioDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch (uMsg) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_AUDIO_CONFIGURE: configureAudioDriver(hDlg); break; case IDC_AUDIO_TEST: if(!PlaySound(MAKEINTRESOURCE(IDW_TESTSOUND), NULL, SND_RESOURCE | SND_SYNC)) MessageBox(NULL, "Audio test failed!", "Error", MB_OK | MB_ICONERROR); break; case IDC_AUDIO_CONTROL_PANEL: MessageBox(NULL, "Launching audio control panel not implemented yet!", "Fixme", MB_OK | MB_ICONERROR); break; case IDC_DSOUND_HW_ACCEL: if (HIWORD(wParam) == CBN_SELCHANGE) { int selected_dsound_accel; int i, j = 0; SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); selected_dsound_accel = SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_GETCURSEL, 0, 0); for (i = 0; DSound_HW_Accels[i].settingStr; ++i) { if (DSound_HW_Accels[i].visible) { if (j == selected_dsound_accel) { set_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration", DSound_HW_Accels[i].settingStr); break; } j++; } } } break; case IDC_DSOUND_RATES: if (HIWORD(wParam) == CBN_SELCHANGE) { int selected_dsound_rate; SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); selected_dsound_rate = SendDlgItemMessage(hDlg, IDC_DSOUND_RATES, CB_GETCURSEL, 0, 0); set_reg_key(config_key, keypath("DirectSound"), "DefaultSampleRate", DSound_Rates[selected_dsound_rate]); } break; case IDC_DSOUND_BITS: if (HIWORD(wParam) == CBN_SELCHANGE) { int selected_dsound_bits; SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); selected_dsound_bits = SendDlgItemMessage(hDlg, IDC_DSOUND_BITS, CB_GETCURSEL, 0, 0); set_reg_key(config_key, keypath("DirectSound"), "DefaultBitsPerSample", DSound_Bits[selected_dsound_bits]); } break; } break; case WM_SHOWWINDOW: set_window_title(hDlg); break; case WM_NOTIFY: switch(((LPNMHDR)lParam)->code) { case PSN_KILLACTIVE: SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE); break; case PSN_APPLY: set_reg_key(config_key, "Drivers", "Audio", curAudioDriver); apply(); SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR); break; case PSN_SETACTIVE: break; case NM_CLICK: if (((LPNMHDR)lParam)->idFrom == IDC_AUDIO_TREE) { TVHITTESTINFO ht; DWORD dwPos = GetMessagePos(); HWND tree = ((LPNMHDR)lParam)->hwndFrom; ZeroMemory(&ht, sizeof(ht)); ht.pt.x = (short)LOWORD(dwPos); ht.pt.y = (short)HIWORD(dwPos); MapWindowPoints(HWND_DESKTOP, tree, &ht.pt, 1); SendMessageW( tree, TVM_HITTEST, 0, (LPARAM)&ht ); if (TVHT_ONITEMSTATEICON & ht.flags) { TVITEM tvItem; int index; ZeroMemory(&tvItem, sizeof(tvItem)); tvItem.hItem = ht.hItem; SendMessageW( tree, TVM_GETITEMW, 0, (LPARAM) &tvItem ); index = TreeView_GetItemState(tree, ht.hItem, TVIS_STATEIMAGEMASK); if (index == INDEXTOSTATEIMAGEMASK(1)) { TreeView_SetItemState(tree, ht.hItem, INDEXTOSTATEIMAGEMASK(2), TVIS_STATEIMAGEMASK); addDriver(loadedAudioDrv[tvItem.lParam & 0xff].szDriver); SendMessage(GetParent(hDlg), PSM_CHANGED, (WPARAM) hDlg, 0); /* enable apply button */ } else if (index == INDEXTOSTATEIMAGEMASK(2))//.........这里部分代码省略.........
开发者ID:bilboed,项目名称:wine,代码行数:101,
示例5: GetSystemInfo/*** Win32 poll using stats functions including Tooltip32*/void Win32_EntropySource::poll(Entropy_Accumulator& accum) { /* First query a bunch of basic statistical stuff, though don't count it for much in terms of contributed entropy. */ accum.add(GetTickCount(), 0); accum.add(GetMessagePos(), 0); accum.add(GetMessageTime(), 0); accum.add(GetInputState(), 0); accum.add(GetCurrentProcessId(), 0); accum.add(GetCurrentThreadId(), 0); SYSTEM_INFO sys_info; GetSystemInfo(&sys_info); accum.add(sys_info, 1); MEMORYSTATUS mem_info; GlobalMemoryStatus(&mem_info); accum.add(mem_info, 1); POINT point; GetCursorPos(&point); accum.add(point, 1); GetCaretPos(&point); accum.add(point, 1); LARGE_INTEGER perf_counter; QueryPerformanceCounter(&perf_counter); accum.add(perf_counter, 0); /* Now use the Tooltip library to iterate throug various objects on the system, including processes, threads, and heap objects. */ HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);#define TOOLHELP32_ITER(DATA_TYPE, FUNC_FIRST, FUNC_NEXT) / if(!accum.polling_finished()) / { / DATA_TYPE info; / info.dwSize = sizeof(DATA_TYPE); / if(FUNC_FIRST(snapshot, &info)) / { / do / { / accum.add(info, 1); / } while(FUNC_NEXT(snapshot, &info)); / } / } TOOLHELP32_ITER(MODULEENTRY32, Module32First, Module32Next); TOOLHELP32_ITER(PROCESSENTRY32, Process32First, Process32Next); TOOLHELP32_ITER(THREADENTRY32, Thread32First, Thread32Next);#undef TOOLHELP32_ITER if(!accum.polling_finished()) { size_t heap_lists_found = 0; HEAPLIST32 heap_list; heap_list.dwSize = sizeof(HEAPLIST32); const size_t HEAP_LISTS_MAX = 32; const size_t HEAP_OBJS_PER_LIST = 128; if(Heap32ListFirst(snapshot, &heap_list)) { do { accum.add(heap_list, 1); if(++heap_lists_found > HEAP_LISTS_MAX) break; size_t heap_objs_found = 0; HEAPENTRY32 heap_entry; heap_entry.dwSize = sizeof(HEAPENTRY32); if(Heap32First(&heap_entry, heap_list.th32ProcessID, heap_list.th32HeapID)) { do { if(heap_objs_found++ > HEAP_OBJS_PER_LIST) break; accum.add(heap_entry, 1); } while(Heap32Next(&heap_entry)); } if(accum.polling_finished()) break; } while(Heap32ListNext(snapshot, &heap_list)); } }//.........这里部分代码省略.........
开发者ID:AlexNk,项目名称:botan,代码行数:101,
示例6: moduleListRightClickvoid moduleListRightClick(HWND hwnd, WPARAM wParam, LPARAM lParam) // hwnd here is to the main window, NOT the treview{ TVHITTESTINFO hti; hti.pt.x = (short)LOWORD(GetMessagePos()); hti.pt.y = (short)HIWORD(GetMessagePos()); ScreenToClient(((LPNMHDR)lParam)->hwndFrom, &hti.pt); if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom, &hti)) { if (hti.flags & TVHT_ONITEM) { TVITEM tvi = {0}; HMENU hMenu, hSubMenu; int menuNumber; char module[256]; tvi.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_TEXT; tvi.hItem = hti.hItem; tvi.pszText = module; tvi.cchTextMax = 255; TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom, &tvi); if (tvi.lParam) { ModuleTreeInfoStruct *mtis = (ModuleTreeInfoStruct *)tvi.lParam; MCONTACT hContact = mtis->hContact; GetCursorPos(&hti.pt); hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXTMENU)); TranslateMenu(hMenu); if (mtis->type == CONTACT && hContact) menuNumber = 2; else if ((mtis->type == MODULE) && !hContact) menuNumber = 1; else if (mtis->type == CONTACT && !hContact) menuNumber = 3; else if (mtis->type == CONTACT_ROOT_ITEM && !hContact) menuNumber = 4; else if ((mtis->type == MODULE) && hContact) menuNumber = 5; else return; hSubMenu = GetSubMenu(hMenu, menuNumber); TranslateMenu(hSubMenu); switch (menuNumber) { case 1: // null module case 5: // contact module { // check if we r already watching the module int i, watching = 0; // check if the setting is being watched and if it is then check the menu item if (WatchListArray.item) for (i = 0; i < WatchListArray.count; i++) if (WatchListArray.item[i].module && (hContact == WatchListArray.item[i].hContact)) { if (!mir_strcmp(module, WatchListArray.item[i].module) && !WatchListArray.item[i].setting) { // yes so uncheck it CheckMenuItem(hSubMenu, MENU_WATCH_ITEM, MF_CHECKED | MF_BYCOMMAND); watching = 1; break; } } switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, hti.pt.x, hti.pt.y, 0, hwnd, NULL)) { case MENU_RENAME_MOD: TreeView_EditLabel(GetDlgItem(hwnd, IDC_MODULES), tvi.hItem); break; case MENU_DELETE_MOD: if (deleteModule(module, hContact, 0)) { TreeView_DeleteItem(((LPNMHDR)lParam)->hwndFrom, hti.hItem); mir_free(mtis); } break; case MENU_COPY_MOD: copyModuleMenuItem(module, hContact); break; ////////////////////////////////////////////////////////////////////// divider case MENU_WATCH_ITEM: if (!watching) addSettingToWatchList(hContact, module, 0); else freeWatchListItem(i); if (hwnd2watchedVarsWindow) PopulateWatchedWindow(GetDlgItem(hwnd2watchedVarsWindow, IDC_VARS)); break; case MENU_EXPORTMODULE: exportDB(hContact, module); break; case MENU_EXPORTDB: exportDB(INVALID_CONTACT_ID, module); break; } } break; case 2: // contact switch (TrackPopupMenu(hSubMenu, TPM_RETURNCMD, hti.pt.x, hti.pt.y, 0, hwnd, NULL)) { case MENU_CLONE_CONTACT: if (CloneContact(hContact)) refreshTree(1); break;//.........这里部分代码省略.........
开发者ID:0xmono,项目名称:miranda-ng,代码行数:101,
示例7: FastPoll/* This is the fastpoll function which gathers up info by calling various api's */BOOL FastPoll (void){ int nOriginalRandIndex = nRandIndex; static BOOL addedFixedItems = FALSE; FILETIME creationTime, exitTime, kernelTime, userTime; DWORD minimumWorkingSetSize, maximumWorkingSetSize; LARGE_INTEGER performanceCount; MEMORYSTATUS memoryStatus; HANDLE handle; POINT point; /* Get various basic pieces of system information */ RandaddInt32 (GetActiveWindow ()); /* Handle of active window */ RandaddInt32 (GetCapture ()); /* Handle of window with mouse capture */ RandaddInt32 (GetClipboardOwner ()); /* Handle of clipboard owner */ RandaddInt32 (GetClipboardViewer ()); /* Handle of start of clpbd.viewer list */ RandaddInt32 (GetCurrentProcess ()); /* Pseudohandle of current process */ RandaddInt32 (GetCurrentProcessId ()); /* Current process ID */ RandaddInt32 (GetCurrentThread ()); /* Pseudohandle of current thread */ RandaddInt32 (GetCurrentThreadId ()); /* Current thread ID */ RandaddInt32 (GetCurrentTime ()); /* Milliseconds since Windows started */ RandaddInt32 (GetDesktopWindow ()); /* Handle of desktop window */ RandaddInt32 (GetFocus ()); /* Handle of window with kb.focus */ RandaddInt32 (GetInputState ()); /* Whether sys.queue has any events */ RandaddInt32 (GetMessagePos ()); /* Cursor pos.for last message */ RandaddInt32 (GetMessageTime ()); /* 1 ms time for last message */ RandaddInt32 (GetOpenClipboardWindow ()); /* Handle of window with clpbd.open */ RandaddInt32 (GetProcessHeap ()); /* Handle of process heap */ RandaddInt32 (GetProcessWindowStation ()); /* Handle of procs window station */ RandaddInt32 (GetQueueStatus (QS_ALLEVENTS)); /* Types of events in input queue */ /* Get multiword system information */ GetCaretPos (&point); /* Current caret position */ RandaddBuf ((unsigned char *) &point, sizeof (POINT)); GetCursorPos (&point); /* Current mouse cursor position */ RandaddBuf ((unsigned char *) &point, sizeof (POINT)); /* Get percent of memory in use, bytes of physical memory, bytes of free physical memory, bytes in paging file, free bytes in paging file, user bytes of address space, and free user bytes */ memoryStatus.dwLength = sizeof (MEMORYSTATUS); GlobalMemoryStatus (&memoryStatus); RandaddBuf ((unsigned char *) &memoryStatus, sizeof (MEMORYSTATUS)); /* Get thread and process creation time, exit time, time in kernel mode, and time in user mode in 100ns intervals */ handle = GetCurrentThread (); GetThreadTimes (handle, &creationTime, &exitTime, &kernelTime, &userTime); RandaddBuf ((unsigned char *) &creationTime, sizeof (FILETIME)); RandaddBuf ((unsigned char *) &exitTime, sizeof (FILETIME)); RandaddBuf ((unsigned char *) &kernelTime, sizeof (FILETIME)); RandaddBuf ((unsigned char *) &userTime, sizeof (FILETIME)); handle = GetCurrentProcess (); GetProcessTimes (handle, &creationTime, &exitTime, &kernelTime, &userTime); RandaddBuf ((unsigned char *) &creationTime, sizeof (FILETIME)); RandaddBuf ((unsigned char *) &exitTime, sizeof (FILETIME)); RandaddBuf ((unsigned char *) &kernelTime, sizeof (FILETIME)); RandaddBuf ((unsigned char *) &userTime, sizeof (FILETIME)); /* Get the minimum and maximum working set size for the current process */ GetProcessWorkingSetSize (handle, &minimumWorkingSetSize, &maximumWorkingSetSize); RandaddInt32 (minimumWorkingSetSize); RandaddInt32 (maximumWorkingSetSize); /* The following are fixed for the lifetime of the process so we only add them once */ if (addedFixedItems == 0) { STARTUPINFO startupInfo; /* Get name of desktop, console window title, new window position and size, window flags, and handles for stdin, stdout, and stderr */ startupInfo.cb = sizeof (STARTUPINFO); GetStartupInfo (&startupInfo); RandaddBuf ((unsigned char *) &startupInfo, sizeof (STARTUPINFO)); addedFixedItems = TRUE; } /* The docs say QPC can fail if appropriate hardware is not available. It works on 486 & Pentium boxes, but hasn't been tested for 386 or RISC boxes */ if (QueryPerformanceCounter (&performanceCount)) RandaddBuf ((unsigned char *) &performanceCount, sizeof (LARGE_INTEGER)); else { /* Millisecond accuracy at best... */ DWORD dwTicks = GetTickCount (); RandaddBuf ((unsigned char *) &dwTicks, sizeof (dwTicks)); }//.........这里部分代码省略.........
开发者ID:Rafiot,项目名称:GostCrypt-Win7,代码行数:101,
示例8: JabberMucJidListDlgProc//.........这里部分代码省略......... switch ( nm->nmcd.dwDrawStage ) { case CDDS_PREPAINT: case CDDS_ITEMPREPAINT: SetWindowLongPtr( hwndDlg, DWLP_MSGRESULT, CDRF_NOTIFYSUBITEMDRAW ); return TRUE; case CDDS_SUBITEM|CDDS_ITEMPREPAINT: { RECT rc; HICON hIcon; ListView_GetSubItemRect( nm->nmcd.hdr.hwndFrom, nm->nmcd.dwItemSpec, nm->iSubItem, LVIR_LABEL, &rc ); if ( nm->iSubItem == 1 ) { if( nm->nmcd.lItemlParam == ( LPARAM )( -1 )) hIcon = ( HICON )LoadImage( hInst, MAKEINTRESOURCE( IDI_ADDCONTACT ), IMAGE_ICON, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), 0 ); else hIcon = ( HICON )LoadImage( hInst, MAKEINTRESOURCE( IDI_DELETE ), IMAGE_ICON, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), 0 ); DrawIconEx( nm->nmcd.hdc, ( rc.left+rc.right-GetSystemMetrics( SM_CXSMICON ))/2, ( rc.top+rc.bottom-GetSystemMetrics( SM_CYSMICON ))/2,hIcon, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), 0, GetSysColorBrush(COLOR_WINDOW), DI_NORMAL ); DestroyIcon( hIcon ); SetWindowLongPtr( hwndDlg, DWLP_MSGRESULT, CDRF_SKIPDEFAULT ); return TRUE; } } } } break; case NM_CLICK: { NMLISTVIEW *nm = ( NMLISTVIEW * ) lParam; LVITEM lvi; LVHITTESTINFO hti; TCHAR text[128]; if ( nm->iSubItem < 1 ) break; hti.pt.x = ( short ) LOWORD( GetMessagePos()); hti.pt.y = ( short ) HIWORD( GetMessagePos()); ScreenToClient( nm->hdr.hwndFrom, &hti.pt ); if ( ListView_SubItemHitTest( nm->hdr.hwndFrom, &hti ) == -1 ) break; if ( hti.iSubItem != 1 ) break; lvi.mask = LVIF_PARAM | LVIF_TEXT; lvi.iItem = hti.iItem; lvi.iSubItem = 0; lvi.pszText = text; lvi.cchTextMax = sizeof( text ); ListView_GetItem( nm->hdr.hwndFrom, &lvi ); if ( lvi.lParam == ( LPARAM )( -1 )) { TCHAR szBuffer[ 1024 ]; _tcscpy( szBuffer, dat->type2str()); if ( !dat->ppro->EnterString(szBuffer, SIZEOF(szBuffer), NULL, JES_COMBO, "gcAddNick_")) break; // Trim leading and trailing whitespaces TCHAR *p = szBuffer, *q; for ( p = szBuffer; *p!='/0' && isspace( BYTE( *p )); p++); for ( q = p; *q!='/0' && !isspace( BYTE( *q )); q++); if (*q != '/0') *q = '/0'; if (*p == '/0') break; TCHAR rsn[ 1024 ]; _tcscpy( rsn, dat->type2str()); if ( dat->type == MUC_BANLIST ) { dat->ppro->EnterString(rsn, SIZEOF(rsn), TranslateT("Reason to ban") , JES_COMBO, "gcAddReason_"); if ( szBuffer )
开发者ID:raoergsls,项目名称:miranda,代码行数:67,
示例9: switch//.........这里部分代码省略......... case IDC_ADDCATEGORY: if (HIWORD(wParam) == BN_CLICKED) { AddCategory(); } break; case IDC_DELETECATEGORY: if (HIWORD(wParam) == BN_CLICKED) { if (tmpsmcat.DeleteCustomCategory(GetSelProto())) { PopulateSmPackList(); SetChanged(); } } break; case IDC_SPACES: case IDC_SCALETOTEXTHEIGHT: case IDC_APPENDSPACES: case IDC_SMLBUT: case IDC_SCALEALLSMILEYS: case IDC_IEVIEWSTYLE: case IDC_ANIMATESEL: case IDC_ANIMATEDLG: case IDC_INPUTSMILEYS: case IDC_DCURSORSMILEY: case IDC_DISABLECUSTOM: case IDC_HQSCALING: if (HIWORD(wParam) == BN_CLICKED) SetChanged(); break; case IDC_SELCLR: if (HIWORD(wParam) == CPN_COLOURCHANGED) SetChanged(); break; case IDC_MAXCUSTSMSZ: case IDC_MINSMSZ: if (HIWORD(wParam) == EN_CHANGE && GetFocus() == (HWND)lParam) SetChanged(); break; } break; case UM_CHECKSTATECHANGE: UserAction((HTREEITEM)lParam); break; case WM_NOTIFY: switch(((LPNMHDR)lParam)->idFrom) { case 0: switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: ApplyChanges(); break; } break; case IDC_CATEGORYLIST: switch (((LPNMHDR)lParam)->code) { case NM_CLICK: { TVHITTESTINFO ht = {0}; DWORD dwpos = GetMessagePos(); POINTSTOPOINT(ht.pt, MAKEPOINTS(dwpos)); MapWindowPoints(HWND_DESKTOP, ((LPNMHDR)lParam)->hwndFrom, &ht.pt, 1); TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom, &ht); if (TVHT_ONITEM & ht.flags) FilenameChanged(); if (TVHT_ONITEMSTATEICON & ht.flags) PostMessage(m_hwndDialog, UM_CHECKSTATECHANGE, 0, (LPARAM)ht.hItem); } case TVN_KEYDOWN: if (((LPNMTVKEYDOWN) lParam)->wVKey == VK_SPACE) PostMessage(m_hwndDialog, UM_CHECKSTATECHANGE, 0, (LPARAM)TreeView_GetSelection(((LPNMHDR)lParam)->hwndFrom)); break; case TVN_SELCHANGEDA: case TVN_SELCHANGEDW: { LPNMTREEVIEW pnmtv = (LPNMTREEVIEW) lParam; if (pnmtv->itemNew.state & TVIS_SELECTED) UpdateControls(); } break; } break; } break; } return Result;}
开发者ID:TonyAlloa,项目名称:miranda-dev,代码行数:101,
示例10: SysLinkWindowProc/*********************************************************************** * SysLinkWindowProc */static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ SYSLINK_INFO *infoPtr; TRACE("hwnd=%p msg=%04x wparam=%lx lParam=%lx/n", hwnd, message, wParam, lParam); infoPtr = (SYSLINK_INFO *)GetWindowLongPtrW(hwnd, 0); if (!infoPtr && message != WM_CREATE) return DefWindowProcW(hwnd, message, wParam, lParam); switch(message) { case WM_PRINTCLIENT: case WM_PAINT: return SYSLINK_Paint (infoPtr, (HDC)wParam); case WM_ERASEBKGND: return 0; case WM_SETCURSOR: { LHITTESTINFO ht; DWORD mp = GetMessagePos(); ht.pt.x = (short)LOWORD(mp); ht.pt.y = (short)HIWORD(mp); ScreenToClient(infoPtr->Self, &ht.pt); if(SYSLINK_HitTest (infoPtr, &ht)) { SetCursor(LoadCursorW(0, (LPCWSTR)IDC_HAND)); return TRUE; } return DefWindowProcW(hwnd, message, wParam, lParam); } case WM_SIZE: { RECT rcClient; if (GetClientRect(infoPtr->Self, &rcClient)) { HDC hdc = GetDC(infoPtr->Self); if(hdc != NULL) { SYSLINK_Render(infoPtr, hdc, &rcClient); ReleaseDC(infoPtr->Self, hdc); } } return 0; } case WM_GETFONT: return (LRESULT)infoPtr->Font; case WM_SETFONT: return (LRESULT)SYSLINK_SetFont(infoPtr, (HFONT)wParam, (BOOL)lParam); case WM_SETTEXT: SYSLINK_SetText(infoPtr, (LPWSTR)lParam); return DefWindowProcW(hwnd, message, wParam, lParam); case WM_LBUTTONDOWN: { POINT pt; pt.x = (short)LOWORD(lParam); pt.y = (short)HIWORD(lParam); return SYSLINK_LButtonDown(infoPtr, &pt); } case WM_LBUTTONUP: { POINT pt; pt.x = (short)LOWORD(lParam); pt.y = (short)HIWORD(lParam); return SYSLINK_LButtonUp(infoPtr, &pt); } case WM_KEYDOWN: { switch(wParam) { case VK_RETURN: SYSLINK_OnEnter(infoPtr); return 0; case VK_TAB: { BOOL shift = GetKeyState(VK_SHIFT) & 0x8000; SYSKEY_SelectNextPrevLink(infoPtr, shift); return 0; } default: return DefWindowProcW(hwnd, message, wParam, lParam); } } case WM_GETDLGCODE://.........这里部分代码省略.........
开发者ID:bpon,项目名称:wine,代码行数:101,
示例11: GetMessagePosvoid CFilePatchesDlg::OnNMRclickFilelist(NMHDR * /*pNMHDR*/, LRESULT *pResult){ *pResult = 0; if (m_sPath.IsEmpty()) return; CString temp; CMenu popup; POINT point; DWORD ptW = GetMessagePos(); point.x = GET_X_LPARAM(ptW); point.y = GET_Y_LPARAM(ptW); if (!popup.CreatePopupMenu()) return; UINT nFlags = MF_STRING | (m_cFileList.GetSelectedCount()==1 ? MF_ENABLED : MF_DISABLED | MF_GRAYED); temp.LoadString(IDS_PATCH_PREVIEW); popup.AppendMenu(nFlags, ID_PATCHPREVIEW, temp); popup.SetDefaultItem(ID_PATCHPREVIEW, FALSE); temp.LoadString(IDS_PATCH_ALL); popup.AppendMenu(MF_STRING | MF_ENABLED, ID_PATCHALL, temp); nFlags = MF_STRING | (m_cFileList.GetSelectedCount() > 0 ? MF_ENABLED : MF_DISABLED | MF_GRAYED); temp.LoadString(IDS_PATCH_SELECTED); popup.AppendMenu(nFlags, ID_PATCHSELECTED, temp); // if the context menu is invoked through the keyboard, we have to use // a calculated position on where to anchor the menu on if ((point.x == -1) && (point.y == -1)) { CRect rect; GetWindowRect(&rect); point = rect.CenterPoint(); } int cmd = popup.TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_NONOTIFY | TPM_RIGHTBUTTON, point.x, point.y, this, 0); switch (cmd) { case ID_PATCHPREVIEW: if (m_pCallBack) { int nIndex = m_cFileList.GetSelectionMark(); if (m_arFileStates.GetAt(nIndex) == FPDLG_FILESTATE_ERROR) { MessageBox(m_pPatch->GetPatchRejects(nIndex), NULL, MB_ICONERROR); } else if ( m_arFileStates.GetAt(nIndex)!=FPDLG_FILESTATE_PATCHED) { m_pCallBack->PatchFile(m_pPatch->GetStrippedPath(nIndex), m_pPatch->GetContentMods(nIndex), m_pPatch->GetPropMods(nIndex), _T("")); m_ShownIndex = nIndex; m_cFileList.Invalidate(); } } break; case ID_PATCHALL: PatchAll(); break; case ID_PATCHSELECTED: PatchSelected(); break; default: break; }}
开发者ID:3F,项目名称:tortoisegit-mdc,代码行数:64,
示例12: GenMenuOpts//.........这里部分代码省略......... TVITEM tvi; HTREEITEM hti; hti=TreeView_GetSelection(GetDlgItem(hwndDlg,IDC_MENUOBJECTS)); if (hti==NULL) break; tvi.mask=TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM; tvi.hItem=hti; TreeView_GetItem(GetDlgItem(hwndDlg,IDC_MENUOBJECTS),&tvi); BuildTree(hwndDlg,(int)tvi.lParam); } break; case IDC_MENUITEMS: switch (((LPNMHDR)lParam)->code) { case NM_CUSTOMDRAW: { int i= handleCustomDraw(GetDlgItem(hwndDlg,IDC_MENUITEMS),(LPNMTVCUSTOMDRAW) lParam); SetWindowLong(hwndDlg, DWL_MSGRESULT, i); return TRUE; } case TVN_BEGINDRAGA: SetCapture(hwndDlg); dat->dragging=1; dat->hDragItem=((LPNMTREEVIEW)lParam)->itemNew.hItem; TreeView_SelectItem(GetDlgItem(hwndDlg,IDC_MENUITEMS),dat->hDragItem); //ShowWindow(GetDlgItem(hwndDlg,IDC_BUTTONORDERTREEWARNING),SW_SHOW); break; case NM_CLICK: { TVHITTESTINFO hti; hti.pt.x=(short)LOWORD(GetMessagePos()); hti.pt.y=(short)HIWORD(GetMessagePos()); ScreenToClient(((LPNMHDR)lParam)->hwndFrom,&hti.pt); if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom,&hti)) { if (hti.flags&TVHT_ONITEMICON) { TVITEM tvi; tvi.mask=TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM; tvi.hItem=hti.hItem; TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom,&tvi); tvi.iImage=tvi.iSelectedImage=!tvi.iImage; ((MenuItemOptData *)tvi.lParam)->show=tvi.iImage; TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom,&tvi); SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); //all changes take effect in runtime //ShowWindow(GetDlgItem(hwndDlg,IDC_BUTTONORDERTREEWARNING),SW_SHOW); } /*--------MultiSelection----------*/ if (hti.flags&TVHT_ONITEMLABEL) { /// LabelClicked Set/unset selection TVITEM tvi; HWND tvw=((LPNMHDR)lParam)->hwndFrom; tvi.mask=TVIF_HANDLE|TVIF_PARAM; tvi.hItem=hti.hItem; TreeView_GetItem(tvw,&tvi); if (GetKeyState(VK_CONTROL)&0x8000) { if (((MenuItemOptData *)tvi.lParam)->isSelected) ((MenuItemOptData *)tvi.lParam)->isSelected=0; else ((MenuItemOptData *)tvi.lParam)->isSelected=1; //current selection order++. TreeView_SetItem(tvw,&tvi); }
开发者ID:BackupTheBerlios,项目名称:mimplugins-svn,代码行数:67,
示例13: preview_proc//.........这里部分代码省略......... break; case SB_LINEDOWN: /* == SB_LINERIGHT */ si.nPos += si.nPage / 10; break; case SB_PAGEUP: /* == SB_PAGELEFT */ si.nPos -= si.nPage; break; case SB_PAGEDOWN: /* SB_PAGERIGHT */ si.nPos += si.nPage; break; case SB_THUMBTRACK: si.nPos = si.nTrackPos; break; } si.fMask = SIF_POS; SetScrollInfo(hWnd, nBar, &si, TRUE); GetScrollInfo(hWnd, nBar, &si); if (si.nPos != origPos) { int amount = origPos - si.nPos; if (msg == WM_VSCROLL) ScrollWindow(hWnd, 0, amount, NULL, NULL); else ScrollWindow(hWnd, amount, 0, NULL, NULL); } return 0; } case WM_SETCURSOR: { POINT pt; RECT rc; int bHittest = FALSE; DWORD messagePos = GetMessagePos(); pt.x = (short)LOWORD(messagePos); pt.y = (short)HIWORD(messagePos); ScreenToClient(hWnd, &pt); GetClientRect(hWnd, &rc); if (PtInRect(&rc, pt)) { pt.x += GetScrollPos(hWnd, SB_HORZ); pt.y += GetScrollPos(hWnd, SB_VERT); bHittest = preview_page_hittest(pt); } if (bHittest) SetCursor(LoadCursorW(GetModuleHandleW(0), MAKEINTRESOURCEW(IDC_ZOOM))); else SetCursor(LoadCursorW(NULL, (WCHAR*)IDC_ARROW)); return TRUE; } case WM_LBUTTONDOWN: { int page; POINT pt; pt.x = (short)LOWORD(lParam) + GetScrollPos(hWnd, SB_HORZ); pt.y = (short)HIWORD(lParam) + GetScrollPos(hWnd, SB_VERT); if ((page = preview_page_hittest(pt)) > 0) { HWND hMainWnd = GetParent(hWnd); /* Convert point from client coordinate to unzoomed page
开发者ID:RareHare,项目名称:reactos,代码行数:67,
示例14: sprintfLRESULT nsf_window::onNotify(UINT uMsg, WPARAM wParam, LPARAM lParam){ int result = mainList->handle(lParam); if (result == ENTRYLIST_SELCHANGED) { if (mainList->selectedChunk.type == 1) { //SendMessage(txtrhWnd, WM_ACTIVATE, 0, 0); } else { char temp[10]; sprintf(temp, "%i", mainList->selectedChunk.type); SetDlgItemText(hSelf, IDC_CHUNKTYPEEDIT, temp); sprintf(temp, "%i", mainList->selectedChunk.entryCount); SetDlgItemText(hSelf, IDC_CHUNKENTRYCOUNTEDIT, temp); sprintf(temp, "%x", mainList->selectedChunk.checksum); SetDlgItemText(hSelf, IDC_CHUNKCHECKSUMEDIT, temp); sprintf(temp, "%i", mainList->selectedEntry.type); SetDlgItemText(hSelf, IDC_ENTRYTYPEEDIT, temp); sprintf(temp, "%i", mainList->selectedEntry.itemCount); SetDlgItemText(hSelf, IDC_ENTRYITEMCOUNTEDIT, temp); } } else if (result == ENTRYLIST_RCLICK) { if ((mainList->selectedEntry.type == 1 && mainList->selectedItem != 0) || mainList->selectedEntry.type == 3 || mainList->selectedEntry.type == 7) { long mouse = GetMessagePos(); short mouseX, mouseY; mouseX = GET_X_LPARAM(mouse); mouseY = GET_Y_LPARAM(mouse); TrackPopupMenu(hModelMenuA, TPM_BOTTOMALIGN | TPM_LEFTALIGN, mouseX, mouseY, 0, hSelf, NULL); } else if (mainList->selectedEntry.type == 1) { long mouse = GetMessagePos(); short mouseX, mouseY; mouseX = GET_X_LPARAM(mouse); mouseY = GET_Y_LPARAM(mouse); TrackPopupMenu(hModelMenuB, TPM_BOTTOMALIGN | TPM_LEFTALIGN, mouseX, mouseY, 0, hSelf, NULL); } else if (mainList->selectedEntry.type == 11) { long mouse = GetMessagePos(); short mouseX, mouseY; mouseX = GET_X_LPARAM(mouse); mouseY = GET_Y_LPARAM(mouse); TrackPopupMenu(hCodeMenu, TPM_BOTTOMALIGN | TPM_LEFTALIGN, mouseX, mouseY, 0, hSelf, NULL); } } return NULL;}
开发者ID:Almamu,项目名称:crashutils,代码行数:64,
|