끄적끄적

반응형

 

주의!) 정확히 이해를 하면서 쓴 게 아니라.. 그냥 하다보니 되길래 메모를 남김,.. 내용이 정확하지는 않음..!! 수정 필요!

 

 

*리스트박스는 행 단위로만 나뉘어져 있고, 리스트뷰는 행과 열의 구분이 있는 형태라고 보면 된다.

 

 

[리스트박스]

 

Gui, WinSchedules: Add, ListBox, x0 y38 w400 h150 vLB_Schedules gLB_Schedules_Click hwndlb, %Schedule_Data%

 

 

;내용 추가하기

GuiControl, WinSchedules: , LB_Schedules, %ReadData%

 

 

;GUI 내용 가져올 때 필요할 때가 있다.(??)

Gui, WinSchedules: submit, nohide

 

 

;리스트박스에서 선택된 내용을 가져올 때

GuiControlGet, OutVar,  , LB_Schedules

 

 

;리스트박스 내용 지우기

SendMessage,0x184,,,listbox1, %LB_Schedules%

 

 

;내용 변경할 때는 리스트박스에서 변수로 값을 가져와서 변경했다가 리스트박스 내용을 지우고 다시 변경된 값으로 추가..

 

 

 

[리스트뷰]

 

Gui, WinSchedules: Add, ListView, x0 y38 w690 h150 HwndHwndScheduleList vLV_Schedules gLV_Schedules_Click  HScroll altsubmit checked report, 순번|날짜|요일|시간|내용

 

; ListView 설정 변경

Gui, WinSchedules: default                    ;이게 있어야 아래가 정상수행 된다.

;Gui, WinSchedules: Listview,LV_Schedules

;Gui, WinSchedules: submit, nohide

 

;항목별 가로 크기 변경

LV_ModifyCol(1,50) ;1

LV_ModifyCol(2,110) ;2020/04/01

LV_ModifyCol(3,50) ;금

LV_ModifyCol(4,60) ;11:30

LV_ModifyCol(4,300) ;내용

 

;/////////////////////////////////////////////////////////

 

;삽입

LV_Add(옵션, 1열, 2열, 3열, ...)

LV_Add("", RowCNT, CellData1, CellData2, CellData3, CellData4, CellData5   ;각 항목을 ListView에 나타나게 입력한다.

 

 

;삭제

LV_Delete() ;리스트뷰 모든 내용 삭제

LV_Delete(행번호) ;행번호 내용 삭제

 

 

;변경

LV_Modify(행번호, 옵션, 1열, 2열, 3열, ...)

LV_Modify(SelectRowNum, "", SelectRowNum, Sche_Date, DDL_Week, Sche_Time, ...)

 

 

;리스트뷰에서 데이터 가져오기

LV_GetText(저장변수, 행번호, 열번호)

LV_GetText(ReadCellData, RowCNT, ColCNT)

 

;/////////////////////////////////////////////////////////

 

(댓글 내용 추가)

;행과 열의 갯수를 알아내는 코드

Row_CNT := LV_GetCount()
Col_CNT := LV_GetCount("Column")
MsgBox, 0, aaa, Row : %Row_CNT%`nCol : %Col_CNT%

 

 

(삭제)

;행의 총갯수를 알아내기 위한 코드 

Loop % LV_GetCount()

{

LastRowNum := A_Index

}

 

;열의 총갯수를 알아내기 위한 코드

Loop % LV_GetCount("Column")

{

LastColNum := A_Index

}

 

 

;리스트뷰의 행 단위 데이터를 하나의 문장으로 만듬. (열 구분 = , (콤마))

Loop, %LastRowNum%

{

Loop, %LastColNum%

{

LV_GetText(ReadCellData, RowCNT, ColCNT)

SelectSchedule .= ReadCellData . "," ; 각 칼럼의 내용을 하나로, 또 모든 행의 내용을 하나로 연결하는 코드

ColCNT++

}

;MsgBox, 0, , %SelectSchedule%

SelectSchedule .= "|"  ;줄바꿈 기호 (리스트박스, 리스트뷰에서 행바꿈 기호는 |, 파일에서 행바꿈 기호는 `n)

ColCNT := 1

RowCNT++

}

 

 

;//////////////////////////

 

;리스트뷰에서 클릭한 행 번호를 알아내기 위한 코드 !!!!!!!!!!!!!!!!!!!!!

RowNumber = 0  ; 이렇게 하면 첫 회돌이 반복이 리스트의 최상단에서 검색을 시작합니다.

 

Loop

{

RowNumber := LV_GetNext(RowNumber)  ; 다음으로 선택된, 체크된 또는 초점이 있는 행의 번호를 열람하고 아무것도 발견되지 않으면, 0이 반환된다.

if not RowNumber  ; 위에서 0을 돌려주었고, 그래서 더 이상 선택된 행이 없습니다.

break

SelectRowNum := RowNumber

}

 

LV_Delete(SelectRowNum)    ;선택한 행이 삭제된다.

 

;/////////////////////////////////

 

 

참고

http://autohotkeykr.sourceforge.net/docs/commands/ListView.htm

https://ahkscript.github.io/ko/docs/commands/ListView.htm

https://fhly.tistory.com/94

반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]