问题描述
大家好,我创建了这个小脚本,想法是,创建一个listview并读取一个memap文件(直到现在为止),但是我想在运行时加载项目(不断地,读取mem文件并将数据放在列表框中),我发现是否存在与此相关的示例,但我什么也没找到,任何人都有示例或类似示例
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#pragma comment(lib,"user32.lib")
#define BUF_SIZE 256
TCHAR szName[] = TEXT("Test");
enum
{
COL_ID,COL_COGNOME,COL_NOME,NUM_COLS
} ;
static GtkTreeModel *
create_and_fill_model (void)
{
HANDLE hMapFile;
LPCTSTR pBuf;
int nn=1;
hMapFile = OpenFileMapping(
FILE_MAP_ALL_ACCESS,FALSE,szName);
if (hMapFile == NULL)
{
_tprintf(TEXT("Could not open file mapping object (%d).\n"),GetLastError());
}
pBuf = (LPTSTR)MapViewOfFile(hMapFile,FILE_MAP_ALL_ACCESS,BUF_SIZE);
if (pBuf == NULL)
{
_tprintf(TEXT("Could not map view of file (%d).\n"),GetLastError());
CloseHandle(hMapFile);
}
GtkListStore *store;
GtkTreeIter iter;
store = gtk_list_store_new (NUM_COLS,G_TYPE_UINT,G_TYPE_STRING,G_TYPE_STRING);
gtk_list_store_append (store,&iter);
gtk_list_store_set (store,&iter,COL_ID,1,pBuf,"fabio",-1);
gtk_list_store_append (store,2,"Di Matteo","Gioacchino",-1);
UnmapViewOfFile(pBuf);
CloseHandle(hMapFile);
return GTK_TREE_MODEL (store);
}
static GtkWidget *
create_view_and_model (void)
{
GtkCellRenderer *renderer;
GtkTreeModel *model;
GtkWidget *view;
view = gtk_tree_view_new ();
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),-1,"Data",renderer,"text",NULL);
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),"Prezzo","Volume",NULL);
model = create_and_fill_model ();
gtk_tree_view_set_model (GTK_TREE_VIEW (view),model);
g_object_unref (model);
return view;
}
int
main (int argc,char **argv)
{
GtkWidget *window;
GtkWidget *view;
gtk_init (&argc,&argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window),200,(GetSystemMetrics(SM_CYSCREEN)-175));
g_signal_connect (window,"delete_event",gtk_main_quit,NULL); /* dirty */
view = create_view_and_model ();
gtk_container_add (GTK_CONTAINER (window),view);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)