[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fapi\u002Feduwin-logview-api":3},{"id":4,"title":5,"body":6,"description":42,"extension":225,"meta":226,"navigation":227,"path":228,"seo":229,"stem":230,"__hash__":231},"content\u002Fdocs\u002Fapi\u002Feduwin-logview-api.md","eduwin 日志面板 API",{"type":7,"value":8,"toc":219},"minimark",[9,13,29,32,36,52,63,66,88,103,165,185,188,197,200,203,212,215],[10,11,5],"h1",{"id":12},"eduwin-日志面板-api",[14,15,16],"blockquote",{},[17,18,19,20,24,25,28],"p",{},"头文件：",[21,22,23],"code",{},"eduwin_logview.h","（或通过 ",[21,26,27],{},"eduwin.h"," 统一引用）",[17,30,31],{},"LogView 是基于 ListView 的日志面板控件，三列显示（时间 \u002F 级别 \u002F 消息），自动限制行数、自动滚动到底部。",[33,34,35],"h2",{"id":35},"创建",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-c shiki shiki-themes github-light github-dark","HWND create_logview(HWND parent, int x, int y, int w, int h);\n","c","",[21,44,45],{"__ignoreMap":42},[46,47,50],"span",{"class":48,"line":49},"line",1,[46,51,40],{},[17,53,54,55,58,59,62],{},"创建一个日志面板。参数与 ",[21,56,57],{},"create_button"," \u002F ",[21,60,61],{},"create_label"," 一致。",[33,64,65],{"id":65},"输出日志",[37,67,69],{"className":39,"code":68,"language":41,"meta":42,"style":42},"void logview_info(HWND hwnd, const WCHAR *fmt, ...);\nvoid logview_warn(HWND hwnd, const WCHAR *fmt, ...);\nvoid logview_error(HWND hwnd, const WCHAR *fmt, ...);\n",[21,70,71,76,82],{"__ignoreMap":42},[46,72,73],{"class":48,"line":49},[46,74,75],{},"void logview_info(HWND hwnd, const WCHAR *fmt, ...);\n",[46,77,79],{"class":48,"line":78},2,[46,80,81],{},"void logview_warn(HWND hwnd, const WCHAR *fmt, ...);\n",[46,83,85],{"class":48,"line":84},3,[46,86,87],{},"void logview_error(HWND hwnd, const WCHAR *fmt, ...);\n",[17,89,90,91,94,95,98,99,102],{},"向日志面板追加一行。",[21,92,93],{},"fmt"," 和后续参数与 ",[21,96,97],{},"str_format"," 一致（类似 ",[21,100,101],{},"printf","）。自动附加时间戳和级别标签。",[104,105,106,122],"table",{},[107,108,109],"thead",{},[110,111,112,116,119],"tr",{},[113,114,115],"th",{},"函数",[113,117,118],{},"级别标签",[113,120,121],{},"颜色",[123,124,125,139,152],"tbody",{},[110,126,127,133,136],{},[128,129,130],"td",{},[21,131,132],{},"logview_info",[128,134,135],{},"ⓘ",[128,137,138],{},"黑色",[110,140,141,146,149],{},[128,142,143],{},[21,144,145],{},"logview_warn",[128,147,148],{},"⚠",[128,150,151],{},"橙色",[110,153,154,159,162],{},[128,155,156],{},[21,157,158],{},"logview_error",[128,160,161],{},"✕",[128,163,164],{},"红色",[37,166,168],{"className":39,"code":167,"language":41,"meta":42,"style":42},"logview_info(g_logview, L\"应用已启动，端口 %d\", 9099);\nlogview_warn(g_logview, L\"连接超时 (conn_id=%d)\", 5);\nlogview_error(g_logview, L\"网络错误\");\n",[21,169,170,175,180],{"__ignoreMap":42},[46,171,172],{"class":48,"line":49},[46,173,174],{},"logview_info(g_logview, L\"应用已启动，端口 %d\", 9099);\n",[46,176,177],{"class":48,"line":78},[46,178,179],{},"logview_warn(g_logview, L\"连接超时 (conn_id=%d)\", 5);\n",[46,181,182],{"class":48,"line":84},[46,183,184],{},"logview_error(g_logview, L\"网络错误\");\n",[33,186,187],{"id":187},"清空",[37,189,191],{"className":39,"code":190,"language":41,"meta":42,"style":42},"void logview_clear(HWND hwnd);\n",[21,192,193],{"__ignoreMap":42},[46,194,195],{"class":48,"line":49},[46,196,190],{},[17,198,199],{},"清空日志面板所有行。",[33,201,202],{"id":202},"行数限制",[37,204,206],{"className":39,"code":205,"language":41,"meta":42,"style":42},"void logview_set_max_rows(HWND hwnd, int max_rows);\n",[21,207,208],{"__ignoreMap":42},[46,209,210],{"class":48,"line":49},[46,211,205],{},[17,213,214],{},"设置最大行数（默认 500）。超限时自动删除最旧的行。",[216,217,218],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":42,"searchDepth":78,"depth":78,"links":220},[221,222,223,224],{"id":35,"depth":78,"text":35},{"id":65,"depth":78,"text":65},{"id":187,"depth":78,"text":187},{"id":202,"depth":78,"text":202},"md",{},true,"\u002Fdocs\u002Fapi\u002Feduwin-logview-api",{"title":5,"description":42},"docs\u002Fapi\u002Feduwin-logview-api","H1HlMKOjS6mSi52WUejGuQtQ71Fo1pqrZQ_9syFV0DE",1782488679850]