| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2807 人关注过本帖
标题:WIN32 视图列表控件的问题
只看楼主 加入收藏
g52077643
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2012-12-25
收藏
 问题点数:0 回复次数:2 
WIN32 视图列表控件的问题
_ShowProcessInfo    proc    uses edi _dwRow,_lpProcess
            LOCAL    @stLVI:LV_ITEM
            LOCAL    @szBuffer[10]:byte
            
    mov    edi,_lpProcess
    assume    edi:ptr PROCESSENTRY32
    mov    @stLVI.imask,LVIF_TEXT or LVIF_PARAM
    push    _dwRow
    pop    @stLVI.iItem
    mov    @stLVI.iSubItem,0
    push    _dwRow
    pop    @stLVI.lParam
    invoke    wsprintf,addr @szBuffer,offset szTemplate,[edi].th32ProcessID
    lea    eax,@szBuffer
    mov    @stLVI.pszText,eax
    invoke    SendMessage,hList,LVM_INSERTITEM,0,addr @stLVI
   
   
    inc    @stLVI.iSubItem
    mov    @stLVI.pszText,eax
    lea    eax,[edi].szExeFile
    mov    @stLVI.pszText,eax
    invoke    SendMessage,hList,LVM_SETITEM,0,addr @stLVI
    assume    edi:nothing
   

   
    ret

_ShowProcessInfo endp
为什么子项目显示不了进程名··如果我把PROCESSENTRY32改成查找文件的WIN32_FIND_DATA 又能正常加入子项目了··或者我把进程名加到首项目也能正常显示···
2014-08-27 12:36
g52077643
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2012-12-25
收藏
得分:0 
贴上全部代码··希望好心人能帮忙修改····
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
include comctl32.inc
includelib comctl32.lib
includelib user32.lib
includelib kernel32.lib



.data?
hInstance    dd    ?
hWinMain    dd    ?
hList        dd    ?


.data
szClassName    db    'ListViewWinClass',0
szAppName    db    '视图列表程序',0
LVMClassName     db     'SysListView32',0
szLVCaption1    db    '句柄',0
szLVCaption2    db    '文件名称',0
szLVCaption3    db    '文件名称aaaa',0
szTemplate    db    '%08x',0



.code   
_ShowProcessInfo    proc    uses edi _dwRow,_lpProcess
            LOCAL    @stLVI:LV_ITEM
            LOCAL    @szBuffer[10]:byte
            
    mov    edi,_lpProcess
    assume    edi:ptr PROCESSENTRY32
    mov    @stLVI.imask,LVIF_TEXT or LVIF_PARAM
    push    _dwRow
    pop    @stLVI.iItem
    mov    @stLVI.iSubItem,0
    push    _dwRow
    pop    @stLVI.lParam
    invoke    wsprintf,addr @szBuffer,offset szTemplate,[edi].th32ProcessID
    lea    eax,@szBuffer
    mov    @stLVI.pszText,eax
    invoke    SendMessage,hList,LVM_INSERTITEM,0,addr @stLVI
   
   
    inc    @stLVI.iSubItem
    mov    @stLVI.pszText,eax
    lea    eax,[edi].szExeFile
    mov    @stLVI.pszText,eax
    invoke    SendMessage,hList,LVM_SETITEM,0,addr @stLVI
    assume    edi:nothing
   

   
    ret

_ShowProcessInfo endp
_FillFileInfo    proc    uses edi
        LOCAL    @hSnapshot
        LOCAL    @stProcess:PROCESSENTRY32
        
    invoke    CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,0
    mov    @hSnapshot,eax
    mov    @stProcess.dwSize,sizeof @stProcess
    invoke    Process32First,@hSnapshot,addr @stProcess
    xor    edi,edi
    .while    eax
        invoke    _ShowProcessInfo,edx,addr @stProcess
        inc    edi
        invoke    Process32Next,@hSnapshot,addr @stProcess
    .endw
        
    invoke    CloseHandle,@hSnapshot   

    ret

_FillFileInfo endp
_InsertColumn    proc
        LOCAL    @stLVC:LV_COLUMN
        
    mov    @stLVC.imask,LVCF_TEXT OR LVCF_WIDTH
    mov    @stLVC.pszText,offset szLVCaption1
    mov    @stLVC.lx,100
    invoke    SendMessage,hList,LVM_INSERTCOLUMN,0,addr @stLVC
    OR    @stLVC.imask,LVCF_FMT
    mov    @stLVC.pszText,offset szLVCaption2
    mov    @stLVC.lx,200   
    mov    @stLVC.fmt,LVCFMT_LEFT
    invoke    SendMessage,hList,LVM_INSERTCOLUMN,1,addr @stLVC
    mov    @stLVC.pszText,offset szLVCaption3
    mov    @stLVC.lx,200   
    mov    @stLVC.fmt,LVCFMT_LEFT
    invoke    SendMessage,hList,LVM_INSERTCOLUMN,2,addr @stLVC
    ret

_InsertColumn endp

_WndProc    proc    uses esi edi ebx,hWnd,uMsg,wParam,lParam
   
    mov    eax,uMsg
    .if    eax==WM_CLOSE
        invoke    DestroyWindow,hWnd
        invoke    PostQuitMessage,0
        
    .elseif    eax==WM_CREATE
        invoke CreateWindowEx, NULL, addr LVMClassName, NULL, LVS_REPORT+WS_CHILD+WS_VISIBLE, \
                0,0,800,700,hWnd, NULL, hInstance, NULL
          mov hList, eax
          invoke    _InsertColumn
          invoke    _FillFileInfo
;         
    .else
        invoke    DefWindowProc,hWnd,uMsg,wParam,lParam   
        ret
    .endif
    xor    eax,eax
    ret

_WndProc endp
_WinMain    proc
        LOCAL    @stWC:WNDCLASSEX
        LOCAL    @stMsg:MSG
   
    invoke    GetModuleHandle,0
    mov    hInstance,eax
   
    invoke    RtlZeroMemory,addr @stWC,sizeof @stWC
        
    mov    @stWC.cbSize,sizeof WNDCLASSEX
    mov    @stWC.style,0
    mov    @stWC.lpfnWndProc,offset _WndProc
    mov    @stWC.cbClsExtra,0
    mov    @stWC.cbWndExtra,0
    push    hInstance
    pop    @stWC.hInstance
    mov    @stWC.hIcon,0
    invoke    LoadCursor,hInstance,IDC_ARROW
    mov    @stWC.hCursor,eax
    mov    @stWC.hbrBackground,COLOR_WINDOW+1
    mov    @stWC.lpszMenuName,0
    mov    @stWC.lpszClassName,offset szClassName
    mov    @stWC.hIconSm,0
   
    invoke    RegisterClassEx,addr @stWC
    invoke    CreateWindowEx,NULL,addr szClassName,addr szAppName,WS_OVERLAPPEDWINDOW,\
                400,400,800,800,0,0,hInstance,0
               
    mov    hWinMain,eax
    invoke    ShowWindow,hWinMain,SW_SHOWNORMAL
    invoke    UpdateWindow,hWinMain
   
    .while    TRUE
        invoke    GetMessage,addr @stMsg,0,0,0
        .break    .if    eax==0
        invoke    TranslateMessage,addr @stMsg
        invoke    DispatchMessage,addr @stMsg
        
    .endw            
        
    ret

_WinMain endp
start:
    invoke    InitCommonControls
    invoke    _WinMain
    invoke    ExitProcess,0
end    start
2014-08-27 14:14
g52077643
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2012-12-25
收藏
得分:0 
找到原因了··是自己太粗心了··
2014-08-27 14:40
快速回复:WIN32 视图列表控件的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014810 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved