以下为搜索结果的界面示意图.搜索的按钮文字没贴出来,大家自己慢慢看,这里只是搜索结果显示部分.数据管理以及搜索流程请到本人资源中去下载
#include
<
stdio.h
>
#include < string .h >
#include " dvbutils.h "
#include " dvbepg.h "
#define IDT_MANUALSEARCH_TIMER 100
#define IDC_MANUALSEARCH_TITLE 101
#define IDC_MANUALSEARCH_SEARCHSTART 102
#define IDC_MANUALSEARCH_STARTFREQ 103
#define IDC_MANUALSEARCH_ENDFREQ 104
#define IDC_MANUALSEARCH_SYMBLE 105
#define IDC_MANUALSEARCH_MODULATION 106
#define IDC_MANUALSEARCH_STRENGTH 107
#define IDC_MANUALSEARCH_SN 108
#define IDC_SEARCHRESULT 110
PRTunerParams tuner = ... {411000} ;
static int GetSearchResult(HWND hTreeView,TSDATA * ts)
... {
TV_INSERTSTRUCT tviis;
TV_ITEM tvi;
HTREEITEM htsItem,hitem;
HIMAGELIST himgList;
CHAR text[256];
SECTIONDATA*sd=ts->pmt->sections;
tviis.hInsertAfter = TVI_LAST;
ZeroMemory(&(tviis.u.itemex), sizeof(TVITEMEX));
tviis.u.itemex.mask = TVIF_TEXT | TVIF_IMAGE |
TVIF_SELECTEDIMAGE | TVIF_PARAM |TVIF_INTEGRAL;
tviis.hParent = TVI_ROOT;
tviis.u.itemex.iImage = 0;
tviis.u.itemex.iSelectedImage =0;
tviis.u.itemex.lParam = 1;
sprintf(text,"TS: %d.%d Freq %d",ts->netId,ts->tsId,ts->tunerParams.frequency);
tviis.u.itemex.pszText = text;
tviis.u.itemex.iIntegral=1;
htsItem = TreeView_InsertItem(hTreeView, &tviis);
while(sd)...{
INT i=0,eCount;
HTREEITEM hsvc;
SERVICELOCATOR svc;
svc.netId=ts->netId;
svc.tsId=ts->tsId;
svc.serviceId=GetPmtServiceID(sd->Data);
tviis.hParent = htsItem ;
tviis.u.itemex.iIntegral=1;
tviis.u.itemex.iImage = (i+2)%10;
tviis.u.item.iSelectedImage = (i+3)%10;
tviis.u.item.lParam = 3;
GetServiceName(&svc,NULL,text,NULL);
tviis.u.item.pszText =text;
hsvc=TreeView_InsertItem(hTreeView, &tviis);
eCount=GetPmtElementCount(sd->Data);
for(i=0;i<eCount;i++)...{
struct MpegProgElement e;
GetPmtElement(sd->Data,&e,i);
tviis.hParent = hsvc ;
tviis.u.itemex.iIntegral=1;
tviis.u.itemex.iImage = (i+2)%5;
tviis.u.item.iSelectedImage = (i+3)%5;
tviis.u.item.lParam = 3;
sprintf(text,"PID %d type %d",e.elementary_PID,e.stream_type);
tviis.u.item.pszText =text;
TreeView_InsertItem(hTreeView, &tviis);
}
sd=sd->next;
}
return hTreeView;
}
static LRESULT ManualSearchProc(HWND hwnd,UINT msgID,UINT wParam,UINT lParam)
... {
switch(msgID)
...{
case WM_TIMER:
...{
SendMessage(GetDlgItem(hwnd,IDC_MANUALSEARCH_STRENGTH),PBM_SETPOS,rand()%100,0);
SendMessage(GetDlgItem(hwnd,IDC_MANUALSEARCH_SN),PBM_SETPOS,rand()%100,0);
}
break;
case DTVM_NETSEARCH:
...{
GetSearchResult(GetDlgItem(hwnd,IDC_SEARCHRESULT),(TSDATA*)wParam);
}break;
case WM_COMMAND:
...{
switch(HIWORD(wParam))
...{
case EN_SETFOCUS:
SendMessage((HWND)lParam,EM_SETSEL,(WPARAM)0,(LPARAM)-1);
break;
case EN_KILLFOCUS:
SendMessage((HWND)lParam,EM_SETSEL,(WPARAM)-1,(LPARAM)0);
break;
case BN_CLICKED:
SearchNetwork(&tuner,0);
break;
}
}
break;
case WM_DRAWITEM:
...{
DRAWITEMSTRUCT *ds=(DRAWITEMSTRUCT*)lParam;
HDC hdc=(HDC)ds->hDC;
RECT rc=ds->rcItem;
HBITMAP hobmp,hbmp;
BITMAP bmp;
HBRUSH hbBorder;
char text[128];
HDC hmdc=CreateCompatibleDC((HDC)hdc);
if((ds->CtlType==ODT_BUTTON)&&(ds->CtlID==IDC_MANUALSEARCH_SEARCHSTART))
...{
if(ds->itemState&(ODS_SELECTED|ODS_FOCUS))
...{
hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_BTNFOCUS));
hobmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hbmp);
BitBlt((HDC)hdc,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,hmdc,0,0,SRCCOPY);
}else...{
hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_BTNNORMAL));
hobmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hbmp);
BitBlt((HDC)hdc,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,hmdc,0,0,SRCCOPY);
}
hbmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hobmp);
SendMessage(ds->hwndItem,WM_GETTEXT,ds->itemID,(LPARAM)text);
SetTextColor(hdc,RGB(0,0,0));
SetBkMode(hdc,TRANSPARENT);
DrawText(hdc,text,sizeof(text),&(ds->rcItem),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
}
DeleteDC(hmdc);
return 0;
}
case WM_ERASEBKGND:
...{
HBITMAP hobmp;
BITMAP bmp;
RECT rw;
HBRUSH hbBorder;
HDC hmdc=CreateCompatibleDC((HDC)wParam);
//画背景
hbBorder=CreateSolidBrush(RGB(61,185,197));
FillRect((HDC)wParam,NULL,hbBorder);
DeleteObject((HGDIOBJ)hbBorder);
...{
RECT rc;
HBITMAP hobmp,hbmpTitle;
HBRUSH hbrush;
BITMAP bmp;
hbmpTitle=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_WINTITLE));
hbrush=CreatePatternBrush(hbmpTitle);
GetObject((HGDIOBJ)hbmpTitle,sizeof(BITMAP),&bmp);
GetClientRect(hwnd,&rc);rc.bottom=rc.top+bmp.bmHeight;
FillRect((HDC)wParam,&rc,hbrush);
DeleteObject((HGDIOBJ)hbrush);
DeleteObject((HGDIOBJ)hbmpTitle);
hbmpTitle=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_WINHELP));
hbrush=CreatePatternBrush(hbmpTitle);
GetObject((HGDIOBJ)hbmpTitle,sizeof(BITMAP),&bmp);
GetClientRect(hwnd,&rc);rc.top=rc.bottom-bmp.bmHeight;
FillRect((HDC)wParam,&rc,hbrush);
DeleteObject((HGDIOBJ)hbrush);
DeleteObject((HGDIOBJ)hbmpTitle);
}
DeleteDC(hmdc);
}
return 1;
default:
return DefWindowProc(hwnd,msgID,wParam,lParam);
}
return 0;
}
HWND CreateNetSearchWnd( void )
... {
HWND ctl,wnd,hTreeView;
HIMAGELIST himgList;
wnd=CreateMainWindow(NULL,WS_TABSTOP|WS_OVERLAPPED,40,30,650,516,(WNDPROC)ManualSearchProc);
CreateWindow("Static","手 动 搜 索",WS_VISIBLE|WS_CHILD,40,10,120,24,wnd,(HMENU)IDC_MANUALSEARCH_TITLE,NULL,NULL);
CreateWindow("Static","搜索频率",WS_VISIBLE|WS_CHILD,100,60,247,28,wnd,(HMENU)1,NULL,NULL);
CreateWindow("Static","符号率(KS/s)",WS_VISIBLE|WS_CHILD,100,100,247,28,wnd,(HMENU)3,NULL,NULL);
CreateWindow("Static","调制方式",WS_VISIBLE|WS_CHILD,100,140,247,28,wnd,(HMENU)4,NULL,NULL);
CreateWindow("EditBox","115",WS_TABSTOP|WS_VISIBLE|WS_CHILD|ES_CENTER,360,60,180,28,wnd,(HMENU)IDC_MANUALSEARCH_STARTFREQ,NULL,NULL);//start frequency
SendMessage(GetDlgItem(wnd,IDC_MANUALSEARCH_STARTFREQ),EM_LIMITTEXT,3,0);
SendMessage(GetDlgItem(wnd,IDC_MANUALSEARCH_STARTFREQ),EM_LINESCROLL,3,1);
CreateWindow("EditBox","6875",WS_TABSTOP|WS_VISIBLE|WS_CHILD|ES_CENTER,360,100,180,28,wnd,(HMENU)IDC_MANUALSEARCH_SYMBLE,NULL,NULL); //symbol rate
SendMessage(GetDlgItem(wnd,IDC_MANUALSEARCH_SYMBLE),EM_LIMITTEXT,4,0);
CreateWindow("Select",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|OPS_NOLABEL|OPS_SHOWARROWALWAYS,360,140,180,28,wnd,(HMENU)IDC_MANUALSEARCH_MODULATION,NULL,NULL);//modulation
CreateWindow("Button","开始搜索",WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_OWNERDRAW,360,180,195,28,wnd,(HMENU)IDC_MANUALSEARCH_SEARCHSTART,NULL,NULL);
hTreeView =CreateWindowEx( 0 ,"treeview", "",
WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT|TVS_NONEVENHEIGHT
| TVS_HASBUTTONS | TVS_SHOWSELALWAYS|WS_VSCROLL|TVS_TRACKSELECT
,50,260,580,200, wnd,(HMENU)IDC_SEARCHRESULT, NULL, NULL);
himgList=ImageList_Create(24,24,ILC_COLOR24 , 4, 4);
ImageList_Add(himgList,LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_COLORKEYS)),NULL);
TreeView_SetImageList(hTreeView, himgList, TVSIL_NORMAL);
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"8 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"16 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"32 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"64 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"128 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"256 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_SETCURSEL,3,0);
CreateWindow("Static","信号等级",WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,55,220,80,20,wnd,(HMENU)5,NULL,NULL);
CreateWindow("Static","信号质量",WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,360,220,80,20,wnd,(HMENU)6,NULL,NULL);
ctl=CreateWindow("Progress",NULL,WS_VISIBLE|WS_CHILD,
135,220,180,20,wnd,(HMENU)IDC_MANUALSEARCH_STRENGTH,NULL,NULL);
SendMessage(ctl,PBM_SETRANGE,0,MAKELONG(0,100));
ctl=CreateWindow("Progress",NULL,WS_VISIBLE|WS_CHILD,
440,220,180,20,wnd,(HMENU)IDC_MANUALSEARCH_SN,NULL,NULL);
SendMessage(ctl,PBM_SETRANGE,0,MAKELONG(0,100));
...{
TBBUTTON toolbarBtns[] = ...{
...{0, 0, 0, BTNS_SEP, ...{0, 0}, 0, 0},
...{0, 123, TBSTATE_ENABLED,BTNS_BUTTON, ...{0, 0}, 0, "选择"},
...{1, 122, TBSTATE_ENABLED, BTNS_BUTTON, ...{0, 0}, 0,"进入下级菜单"},
...{2, 133, TBSTATE_ENABLED, BTNS_BUTTON, ...{0, 0}, 0, "退出"},
...{3, 144, TBSTATE_ENABLED, BTNS_BUTTON, ...{0, 0}, 0, 0},
};
HWND htoolbar=CreateToolbarEx(wnd, WS_CHILD|WS_VISIBLE|
TBSTYLE_LIST|TBSTYLE_TRANSPARENT|TBSTYLE_FLAT|CCS_BOTTOM,
1234, 2, hInstDVBRes, IDB_ARROWKEYS, toolbarBtns,
sizeof(toolbarBtns)/sizeof(TBBUTTON),32, 16, 32, 16, sizeof(TBBUTTON));
SendMessage(htoolbar,TB_SETEXTENDEDSTYLE,0, TBSTYLE_EX_DRAWDDARROWS);
}
SetTimer(wnd,IDT_MANUALSEARCH_TIMER,300,NULL);
RegisterEPGNotify(wnd);
ShowWindow(wnd,SW_SHOW);
return wnd;
}
#include < string .h >
#include " dvbutils.h "
#include " dvbepg.h "
#define IDT_MANUALSEARCH_TIMER 100
#define IDC_MANUALSEARCH_TITLE 101
#define IDC_MANUALSEARCH_SEARCHSTART 102
#define IDC_MANUALSEARCH_STARTFREQ 103
#define IDC_MANUALSEARCH_ENDFREQ 104
#define IDC_MANUALSEARCH_SYMBLE 105
#define IDC_MANUALSEARCH_MODULATION 106
#define IDC_MANUALSEARCH_STRENGTH 107
#define IDC_MANUALSEARCH_SN 108
#define IDC_SEARCHRESULT 110
PRTunerParams tuner = ... {411000} ;
static int GetSearchResult(HWND hTreeView,TSDATA * ts)
... {
TV_INSERTSTRUCT tviis;
TV_ITEM tvi;
HTREEITEM htsItem,hitem;
HIMAGELIST himgList;
CHAR text[256];
SECTIONDATA*sd=ts->pmt->sections;
tviis.hInsertAfter = TVI_LAST;
ZeroMemory(&(tviis.u.itemex), sizeof(TVITEMEX));
tviis.u.itemex.mask = TVIF_TEXT | TVIF_IMAGE |
TVIF_SELECTEDIMAGE | TVIF_PARAM |TVIF_INTEGRAL;
tviis.hParent = TVI_ROOT;
tviis.u.itemex.iImage = 0;
tviis.u.itemex.iSelectedImage =0;
tviis.u.itemex.lParam = 1;
sprintf(text,"TS: %d.%d Freq %d",ts->netId,ts->tsId,ts->tunerParams.frequency);
tviis.u.itemex.pszText = text;
tviis.u.itemex.iIntegral=1;
htsItem = TreeView_InsertItem(hTreeView, &tviis);
while(sd)...{
INT i=0,eCount;
HTREEITEM hsvc;
SERVICELOCATOR svc;
svc.netId=ts->netId;
svc.tsId=ts->tsId;
svc.serviceId=GetPmtServiceID(sd->Data);
tviis.hParent = htsItem ;
tviis.u.itemex.iIntegral=1;
tviis.u.itemex.iImage = (i+2)%10;
tviis.u.item.iSelectedImage = (i+3)%10;
tviis.u.item.lParam = 3;
GetServiceName(&svc,NULL,text,NULL);
tviis.u.item.pszText =text;
hsvc=TreeView_InsertItem(hTreeView, &tviis);
eCount=GetPmtElementCount(sd->Data);
for(i=0;i<eCount;i++)...{
struct MpegProgElement e;
GetPmtElement(sd->Data,&e,i);
tviis.hParent = hsvc ;
tviis.u.itemex.iIntegral=1;
tviis.u.itemex.iImage = (i+2)%5;
tviis.u.item.iSelectedImage = (i+3)%5;
tviis.u.item.lParam = 3;
sprintf(text,"PID %d type %d",e.elementary_PID,e.stream_type);
tviis.u.item.pszText =text;
TreeView_InsertItem(hTreeView, &tviis);
}
sd=sd->next;
}
return hTreeView;
}
static LRESULT ManualSearchProc(HWND hwnd,UINT msgID,UINT wParam,UINT lParam)
... {
switch(msgID)
...{
case WM_TIMER:
...{
SendMessage(GetDlgItem(hwnd,IDC_MANUALSEARCH_STRENGTH),PBM_SETPOS,rand()%100,0);
SendMessage(GetDlgItem(hwnd,IDC_MANUALSEARCH_SN),PBM_SETPOS,rand()%100,0);
}
break;
case DTVM_NETSEARCH:
...{
GetSearchResult(GetDlgItem(hwnd,IDC_SEARCHRESULT),(TSDATA*)wParam);
}break;
case WM_COMMAND:
...{
switch(HIWORD(wParam))
...{
case EN_SETFOCUS:
SendMessage((HWND)lParam,EM_SETSEL,(WPARAM)0,(LPARAM)-1);
break;
case EN_KILLFOCUS:
SendMessage((HWND)lParam,EM_SETSEL,(WPARAM)-1,(LPARAM)0);
break;
case BN_CLICKED:
SearchNetwork(&tuner,0);
break;
}
}
break;
case WM_DRAWITEM:
...{
DRAWITEMSTRUCT *ds=(DRAWITEMSTRUCT*)lParam;
HDC hdc=(HDC)ds->hDC;
RECT rc=ds->rcItem;
HBITMAP hobmp,hbmp;
BITMAP bmp;
HBRUSH hbBorder;
char text[128];
HDC hmdc=CreateCompatibleDC((HDC)hdc);
if((ds->CtlType==ODT_BUTTON)&&(ds->CtlID==IDC_MANUALSEARCH_SEARCHSTART))
...{
if(ds->itemState&(ODS_SELECTED|ODS_FOCUS))
...{
hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_BTNFOCUS));
hobmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hbmp);
BitBlt((HDC)hdc,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,hmdc,0,0,SRCCOPY);
}else...{
hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_BTNNORMAL));
hobmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hbmp);
BitBlt((HDC)hdc,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,hmdc,0,0,SRCCOPY);
}
hbmp=(HBITMAP)SelectObject(hmdc,(HGDIOBJ)hobmp);
SendMessage(ds->hwndItem,WM_GETTEXT,ds->itemID,(LPARAM)text);
SetTextColor(hdc,RGB(0,0,0));
SetBkMode(hdc,TRANSPARENT);
DrawText(hdc,text,sizeof(text),&(ds->rcItem),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
}
DeleteDC(hmdc);
return 0;
}
case WM_ERASEBKGND:
...{
HBITMAP hobmp;
BITMAP bmp;
RECT rw;
HBRUSH hbBorder;
HDC hmdc=CreateCompatibleDC((HDC)wParam);
//画背景
hbBorder=CreateSolidBrush(RGB(61,185,197));
FillRect((HDC)wParam,NULL,hbBorder);
DeleteObject((HGDIOBJ)hbBorder);
...{
RECT rc;
HBITMAP hobmp,hbmpTitle;
HBRUSH hbrush;
BITMAP bmp;
hbmpTitle=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_WINTITLE));
hbrush=CreatePatternBrush(hbmpTitle);
GetObject((HGDIOBJ)hbmpTitle,sizeof(BITMAP),&bmp);
GetClientRect(hwnd,&rc);rc.bottom=rc.top+bmp.bmHeight;
FillRect((HDC)wParam,&rc,hbrush);
DeleteObject((HGDIOBJ)hbrush);
DeleteObject((HGDIOBJ)hbmpTitle);
hbmpTitle=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_WINHELP));
hbrush=CreatePatternBrush(hbmpTitle);
GetObject((HGDIOBJ)hbmpTitle,sizeof(BITMAP),&bmp);
GetClientRect(hwnd,&rc);rc.top=rc.bottom-bmp.bmHeight;
FillRect((HDC)wParam,&rc,hbrush);
DeleteObject((HGDIOBJ)hbrush);
DeleteObject((HGDIOBJ)hbmpTitle);
}
DeleteDC(hmdc);
}
return 1;
default:
return DefWindowProc(hwnd,msgID,wParam,lParam);
}
return 0;
}
HWND CreateNetSearchWnd( void )
... {
HWND ctl,wnd,hTreeView;
HIMAGELIST himgList;
wnd=CreateMainWindow(NULL,WS_TABSTOP|WS_OVERLAPPED,40,30,650,516,(WNDPROC)ManualSearchProc);
CreateWindow("Static","手 动 搜 索",WS_VISIBLE|WS_CHILD,40,10,120,24,wnd,(HMENU)IDC_MANUALSEARCH_TITLE,NULL,NULL);
CreateWindow("Static","搜索频率",WS_VISIBLE|WS_CHILD,100,60,247,28,wnd,(HMENU)1,NULL,NULL);
CreateWindow("Static","符号率(KS/s)",WS_VISIBLE|WS_CHILD,100,100,247,28,wnd,(HMENU)3,NULL,NULL);
CreateWindow("Static","调制方式",WS_VISIBLE|WS_CHILD,100,140,247,28,wnd,(HMENU)4,NULL,NULL);
CreateWindow("EditBox","115",WS_TABSTOP|WS_VISIBLE|WS_CHILD|ES_CENTER,360,60,180,28,wnd,(HMENU)IDC_MANUALSEARCH_STARTFREQ,NULL,NULL);//start frequency
SendMessage(GetDlgItem(wnd,IDC_MANUALSEARCH_STARTFREQ),EM_LIMITTEXT,3,0);
SendMessage(GetDlgItem(wnd,IDC_MANUALSEARCH_STARTFREQ),EM_LINESCROLL,3,1);
CreateWindow("EditBox","6875",WS_TABSTOP|WS_VISIBLE|WS_CHILD|ES_CENTER,360,100,180,28,wnd,(HMENU)IDC_MANUALSEARCH_SYMBLE,NULL,NULL); //symbol rate
SendMessage(GetDlgItem(wnd,IDC_MANUALSEARCH_SYMBLE),EM_LIMITTEXT,4,0);
CreateWindow("Select",NULL,WS_TABSTOP|WS_VISIBLE|WS_CHILD|OPS_NOLABEL|OPS_SHOWARROWALWAYS,360,140,180,28,wnd,(HMENU)IDC_MANUALSEARCH_MODULATION,NULL,NULL);//modulation
CreateWindow("Button","开始搜索",WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_OWNERDRAW,360,180,195,28,wnd,(HMENU)IDC_MANUALSEARCH_SEARCHSTART,NULL,NULL);
hTreeView =CreateWindowEx( 0 ,"treeview", "",
WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT|TVS_NONEVENHEIGHT
| TVS_HASBUTTONS | TVS_SHOWSELALWAYS|WS_VSCROLL|TVS_TRACKSELECT
,50,260,580,200, wnd,(HMENU)IDC_SEARCHRESULT, NULL, NULL);
himgList=ImageList_Create(24,24,ILC_COLOR24 , 4, 4);
ImageList_Add(himgList,LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_COLORKEYS)),NULL);
TreeView_SetImageList(hTreeView, himgList, TVSIL_NORMAL);
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"8 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"16 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"32 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"64 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"128 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_ADDSTRING,0,(LPARAM)"256 QAM");
SendDlgItemMessage(wnd,IDC_MANUALSEARCH_MODULATION,OPT_SETCURSEL,3,0);
CreateWindow("Static","信号等级",WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,55,220,80,20,wnd,(HMENU)5,NULL,NULL);
CreateWindow("Static","信号质量",WS_VISIBLE|WS_CHILD|SS_OWNERDRAW,360,220,80,20,wnd,(HMENU)6,NULL,NULL);
ctl=CreateWindow("Progress",NULL,WS_VISIBLE|WS_CHILD,
135,220,180,20,wnd,(HMENU)IDC_MANUALSEARCH_STRENGTH,NULL,NULL);
SendMessage(ctl,PBM_SETRANGE,0,MAKELONG(0,100));
ctl=CreateWindow("Progress",NULL,WS_VISIBLE|WS_CHILD,
440,220,180,20,wnd,(HMENU)IDC_MANUALSEARCH_SN,NULL,NULL);
SendMessage(ctl,PBM_SETRANGE,0,MAKELONG(0,100));
...{
TBBUTTON toolbarBtns[] = ...{
...{0, 0, 0, BTNS_SEP, ...{0, 0}, 0, 0},
...{0, 123, TBSTATE_ENABLED,BTNS_BUTTON, ...{0, 0}, 0, "选择"},
...{1, 122, TBSTATE_ENABLED, BTNS_BUTTON, ...{0, 0}, 0,"进入下级菜单"},
...{2, 133, TBSTATE_ENABLED, BTNS_BUTTON, ...{0, 0}, 0, "退出"},
...{3, 144, TBSTATE_ENABLED, BTNS_BUTTON, ...{0, 0}, 0, 0},
};
HWND htoolbar=CreateToolbarEx(wnd, WS_CHILD|WS_VISIBLE|
TBSTYLE_LIST|TBSTYLE_TRANSPARENT|TBSTYLE_FLAT|CCS_BOTTOM,
1234, 2, hInstDVBRes, IDB_ARROWKEYS, toolbarBtns,
sizeof(toolbarBtns)/sizeof(TBBUTTON),32, 16, 32, 16, sizeof(TBBUTTON));
SendMessage(htoolbar,TB_SETEXTENDEDSTYLE,0, TBSTYLE_EX_DRAWDDARROWS);
}
SetTimer(wnd,IDT_MANUALSEARCH_TIMER,300,NULL);
RegisterEPGNotify(wnd);
ShowWindow(wnd,SW_SHOW);
return wnd;
}