#include "stdafx.h"
#include "tchar.h"
#include "commctrl.h"
#include "shlwapi.h"
#pragma comment(lib,"comctl32.lib")
#pragma comment(lib,"shlwapi.lib")
void InsertColumn();
LONG CALLBACK ProcWinMain( HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
HINSTANCE g_hInstance;
HWND hList;
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
WNDCLASSEX wc;
MSG msg;
HWND hWnd;
InitCommonControls();
g_hInstance = hInstance;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW ;
wc.lpfnWndProc = ProcWinMain;
wc.cbClsExtra = NULL;
wc.cbWndExtra = NULL;
wc.hInstance = hInstance;
wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = "ClassName";
wc.hIcon = wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
RegisterClassEx(&wc);
hWnd = CreateWindowEx(NULL,"ClassName","AppName",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd,SW_SHOWNORMAL);
UpdateWindow(hWnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
return 0;
}
LONG CALLBACK ProcWinMain( HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
)
{
switch(Msg)
{
case WM_CREATE:
{
[COLOR="Red"]hList = CreateWindowEx(NULL,"SysListView32",NULL,WS_CHILD| LVS_REPORT |WS_VISIBLE | WS_TABSTOP ,
0,0,0,0,hWnd,NULL,g_hInstance,NULL);[/COLOR] //|LVS_EX_CHECKBOXES LVS_REPORT
SendMessage(hList,LVM_SETTEXTCOLOR,0,(LPARAM)RGB(123,168,168));
SendMessage(hList,LVM_SETBKCOLOR,0,(LPARAM)RGB(0,0,0));
SendMessage(hList,LVM_SETTEXTBKCOLOR,0,(LPARAM)RGB(0,0,0));
if(hList == 0)
{
MessageBox(NULL,TEXT("SS"),TEXT(""),0);
}
// hMenu = GetMenu(hWnd);
//CheckMenuRadioItem(hMenu,IDM_ICON,IDM_LIST,IDM_REPORT,MF_CHECKED);
//SendMessage(hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_CHECKBOXES);
InsertColumn();
//
LV_ITEM lvi;
CHAR buffer[20];
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iItem = 0;
lvi.iSubItem = 0;
lvi.pszText = "IOISSSSO.EXE";
SendMessage(hList,LVM_INSERTITEM,0,(LPARAM)&lvi);
lvi.mask = LVIF_TEXT;
lvi.iSubItem ++;
wsprintf(buffer,"60","kb");
lvi.pszText = buffer;
SendMessage(hList,LVM_SETITEM,0,(LPARAM)&lvi);
//
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iItem = 1;
lvi.iSubItem = 0;
lvi.pszText = "SSSSSSSSSSS.EXE";
SendMessage(hList,LVM_INSERTITEM,0,(LPARAM)&lvi);
lvi.mask = LVIF_TEXT;
lvi.iSubItem ++;
wsprintf(buffer,"133","kb");
lvi.pszText = buffer;
SendMessage(hList,LVM_SETITEM,0,(LPARAM)&lvi);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_SIZE:
MoveWindow(hList,0,0,LOWORD(lParam),HIWORD(lParam),TRUE);
break;
case WM_COMMAND:
if(lParam == 0)
{
LONG nStyle = GetWindowLong(hList,GWL_STYLE) ;
nStyle &= ~LVS_TYPEMASK;
nStyle |= LOWORD(wParam);
SetWindowLong(hList,GWL_STYLE,nStyle);
// CheckMenuRadioItem(hMenu,IDM_ICON,IDM_LIST,LOWORD(wParam),MF_CHECKED);
}
break;
/* case WM_NOTIFY:
{
NMHDR *pNm = (NMHDR *)lParam;
if(pNm->hwndFrom == hList)
{
if(pNm->code == LVN_COLUMNCLICK)
{
NM_LISTVIEW *pLV = (NM_LISTVIEW *)lParam;
if(pLV->iSubItem == 1)
{
if(SizeSortOrder == 0 || SizeSortOrder == 2)
{
SendMessage(hList,LVM_SORTITEMS,1,(LPARAM)CompareFunc);
UpdatelParam();
SizeSortOrder = 1;
}
else
{
SendMessage(hList,LVM_SORTITEMS,2,(LPARAM)CompareFunc);
UpdatelParam();
SizeSortOrder = 2;
}
}
else
{
if(FileNameSortOrder == 0 || FileNameSortOrder == 4)
{
SendMessage(hList,LVM_SORTITEMS,3,(LPARAM)CompareFunc);
UpdatelParam();
FileNameSortOrder = 3;
}
else
{
SendMessage(hList,LVM_SORTITEMS,4,(LPARAM)CompareFunc);
UpdatelParam();
FileNameSortOrder = 4;
}
}
}
else if(pNm->code == NM_DBLCLK)
ShowCurrentFocus();
}
}
break;
*/
default:
return DefWindowProc(hWnd,Msg,wParam,lParam);
}
return 0;
}
void InsertColumn()
{
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_WIDTH;
lvc.pszText = "Heading1";
lvc.cx = 150;
SendMessage(hList,LVM_INSERTCOLUMN,0,(LPARAM)&lvc);
lvc.mask |= LVCF_FMT;
lvc.fmt = LVCFMT_RIGHT;
lvc.pszText = "Heading2";
lvc.cx = 100;
SendMessage(hList,LVM_INSERTCOLUMN,1,(LPARAM)&lvc);
}
hList = CreateWindowEx(NULL,"SysListView32",NULL,WS_CHILD| LVS_REPORT |WS_VISIBLE | WS_TABSTOP ,
0,0,0,0,hWnd,NULL,g_hInstance,NULL);这句代码 我想问一下 为什么不能设置listview控件的大小 ,这个listview控件一旦创建就把父窗口给占满了。我想设置子窗口(listview)的大小。在父窗口中留一些位置。能够放其他的控件。
请问高手如何实现?以上就是我把四个参数设置为0了 但是发现到其实子窗口(listview)的大小还是按照父窗口的大小设置的。让我没有办法设置子窗口大小。
怎么样才能设置子窗口(listview)的大小????
请高手指教?
[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!