本文整理汇总了C++中WDL_PtrList::Set方法的典型用法代码示例。如果您正苦于以下问题:C++ WDL_PtrList::Set方法的具体用法?C++ WDL_PtrList::Set怎么用?C++ WDL_PtrList::Set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WDL_PtrList
的用法示例。
在下文中一共展示了WDL_PtrList::Set方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RemoteChannelListProc
static BOOL WINAPI RemoteChannelListProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static WDL_PtrList<struct HWND__> m_children;
switch (uMsg)
{
case WM_INITDIALOG:
{
}
break;
case WM_LCUSER_VUUPDATE:
{
HWND hwnd=GetWindow(hwndDlg,GW_CHILD);
while (hwnd)
{
SendMessage(hwnd,uMsg,0,0);
hwnd=GetWindow(hwnd,GW_HWNDNEXT);
}
}
break;
case WM_RCUSER_UPDATE:
{
int pos=0;
int us;
int did_sizing=0;
RECT lastr={0,0,0,0};
g_client_mutex.Enter();
for (us = 0; us < g_client->GetNumUsers(); us ++)
{
// add/update a user divider
{
HWND h=NULL;
if (pos < m_children.GetSize() && GetWindowLong(h=m_children.Get(pos),GWL_USERDATA) < 0)
{
// this is our wnd
}
else
{
if (h) DestroyWindow(h);
h=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_REMOTEUSER),hwndDlg,RemoteUserItemProc);
if (pos < m_children.GetSize()) m_children.Set(pos,h);
else m_children.Add(h);
ShowWindow(h,SW_SHOWNA);
did_sizing=1;
}
SendMessage(h,WM_RCUSER_UPDATE,(WPARAM)us,0);
RECT r;
GetWindowRect(h,&r);
ScreenToClient(hwndDlg,(LPPOINT)&r);
if (r.top != lastr.bottom)
{
SetWindowPos(h,0, 0,lastr.bottom, 0,0, SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
GetWindowRect(h,&lastr);
}
else lastr=r;
ScreenToClient(hwndDlg,(LPPOINT)&lastr + 1);
pos++;
}
int ch=0;
for (;;)
{
int i=g_client->EnumUserChannels(us,ch++);
if (i < 0) break;
HWND h=NULL;
if (pos < m_children.GetSize() && GetWindowLong(h=m_children.Get(pos),GWL_USERDATA) >= 0)
{
}
else
{
if (h) DestroyWindow(h);
h=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_REMOTECHANNEL),hwndDlg,RemoteChannelItemProc);
if (pos < m_children.GetSize()) m_children.Set(pos,h);
else m_children.Add(h);
did_sizing=1;
ShowWindow(h,SW_SHOWNA);
}
RECT r;
GetWindowRect(h,&r);
ScreenToClient(hwndDlg,(LPPOINT)&r);
if (r.top != lastr.bottom)
{
SetWindowPos(h,0,0,lastr.bottom,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
GetWindowRect(h,&lastr);
}
else lastr=r;
SendMessage(h,WM_RCUSER_UPDATE,(WPARAM)us,(LPARAM)i);
ScreenToClient(hwndDlg,(LPPOINT)&lastr + 1);
pos++;
}
}
g_client_mutex.Leave();
//.........这里部分代码省略.........