鱼C论坛

 找回密码
 立即注册
查看: 1405|回复: 5

WIN32 视图列表控件的问题

[复制链接]
发表于 2014-8-27 12:38:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
_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 又能正常加入子项目了··或者我把进程名加到首项目也能正常显示···
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-27 13:56:51 | 显示全部楼层
我也想知道为设么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-27 14:11:15 | 显示全部楼层
:sweat:版主说这样的话....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-27 14:15:16 | 显示全部楼层
贴上全部代码··希望好心人能帮忙修改····
.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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-27 14:39:15 | 显示全部楼层
自己已经找到原因···是太粗心了··
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 17:19:17 | 显示全部楼层
版主回家了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 10:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表