-            self.CenterOnScreen(wx.wxBOTH)
-        dc = wx.wxClientDC(self)
-        height = 0
-        for line in msg.splitlines():
-            height = height + dc.GetTextExtent(line)[1] + 2
-        stat = wx.wxStaticText(self, -1, msg)
-        self.lbox = wx.wxListBox(self, 100, wx.wxDefaultPosition,
-                                 wx.wxDefaultSize, lst, wx.wxLB_MULTIPLE)
-        ok = wx.wxButton(self, wx.wxID_OK, "OK")
-        cancel = wx.wxButton(self, wx.wxID_CANCEL, "Cancel")
-        stat.SetConstraints(Layoutf('t=t10#1;l=l5#1;r=r5#1;h!%d' % (height,),
-                                   (self,)))
-        self.lbox.SetConstraints(Layoutf('t=b10#2;l=l5#1;r=r5#1;b=t5#3',
-                                 (self, stat, ok)))
-        ok.SetConstraints(Layoutf('b=b5#1;x%w25#1;w!80;h!25', (self,)))
-        cancel.SetConstraints(Layoutf('b=b5#1;x%w75#1;w!80;h!25', (self,)))
-        self.SetAutoLayout(1)
+            self.CenterOnScreen(wx.BOTH)
+
+        stat = wx.StaticText(self, -1, msg)
+        self.lbox = wx.ListBox(self, 100, wx.DefaultPosition, wx.DefaultSize, 
+                               lst, wx.LB_MULTIPLE)
+
+        ok = wx.Button(self, wx.ID_OK, "OK")
+        ok.SetDefault()
+        cancel = wx.Button(self, wx.ID_CANCEL, "Cancel")
+        
+        dlgsizer = wx.BoxSizer(wx.VERTICAL)
+        dlgsizer.Add(stat, 0, wx.ALL, 4)
+        dlgsizer.Add(self.lbox, 1, wx.EXPAND | wx.ALL, 4)
+        
+        btnsizer = wx.StdDialogButtonSizer()
+        btnsizer.AddButton(ok)
+        btnsizer.AddButton(cancel)
+        btnsizer.Realize()
+        
+        dlgsizer.Add(btnsizer, 0, wx.ALL | wx.ALIGN_RIGHT, 4)
+        
+        self.SetSizer(dlgsizer)
+